As of iOS 5 MKReverseGeoCoder is Deprecated!
So you want to use CLGeocoder with CLLocationManager, very simple and works with block.
Example:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
[self.locationManager stopUpdatingLocation];
CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation
completionHandler:^(NSArray *placemarks, NSError *error) {
for (CLPlacemark *placemark in placemarks) {
.... = [placemark locality];
}
}];
}
Edit: Instead of a for in loop you can also do:
NSString *locString = placemarks.count ? [placemarks.firstObject locality] : @"Not Found";