Problem description: Use CLLocationManager to obtain the name of the current city and country. Solution: [plain]-(void) getReverseGeocode {CLGeocoder * geocoder = [[CLGeocoder alloc] init]; if (currentLatLong. count> 0) {CLLocationCoordinate2D myCoOrdinate; myCoOrdinate. latitude = LatValue; myCoOrdinate. longpolling = LangValue; CLLocation * location = [[CLLocation alloc] initWithLatitude: myCoOrdinate. latitude longpolling: myCoOrdinate. longpolling]; [geocoder reverseGeocodeLocation: location completionHa Ndler: ^ (NSArray * placemarks, NSError * error) {if (error) {NSLog (@ "failed with error: % @", error); return;} if (placemarks. count> 0) {NSString * MyAddress = @ ""; NSString * city = @ ""; if ([placemark. addressDictionary objectForKey: @ "FormattedAddressLines"]! = NULL) MyAddress = [[placemark. addressDictionary objectForKey: @ "FormattedAddressLines"] componentsJoinedByString: @ ","]; else MyAddress = @ "Address Not founded"; www.2cto.com if ([placemark. addressDictionary objectForKey: @ "SubAdministrativeArea"]! = NULL) city = [placemark. addressDictionary objectForKey: @ "SubAdministrativeArea"]; else if ([placemark. addressDictionary objectForKey: @ "City"]! = NULL) city = [placemark. addressDictionary objectForKey: @ "City"]; else if ([placemark. addressDictionary objectForKey: @ "Country"]! = NULL) city = [placemark. addressDictionary objectForKey: @ "Country"]; else city = @ "City Not founded"; NSLog (@ "% @", city); NSLog (@ "% @", myAddress) ;}}] ;}}