当我看到苹果文档时,我有点困惑。
有没有人通过他们使用4.1<的iPhone的第一手经验得到答案?版本<如果CLGeocoder能否正常工作,他们会安装5.0?
答案 0 :(得分:1)
目前我打电话 [[CLGeocoder class] instancesRespondToSelector:@selector(reverseGeocodeLocation:completionHandler:)]
这总是在5.0以下的设备上返回false
我仍在试图找出原因,因为文档说明了其支持的4.1版本。
答案 1 :(得分:0)
以下是Location Awareness Programming Guide:
的引用在iOS中,您可以使用CLGeocoder或MKReverseGeocoder类 处理反向地理编码请求。 CLGeocoder是首选 要使用的类,可在iOS 5.0及更高版本中使用。但是,如果你的 应用程序必须在早期版本的iOS上运行,您可以使用 MKReverseGeocoder类。
MKReveresGeocoder仍在5.0中,但已被弃用。也就是说,您仍然可以使用它来简化代码中对多个iOS版本的支持。
答案 2 :(得分:0)
- (IBAction)geoCodeLocation:(id)sender{
[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler:
^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
NSLog(@"placemark %@",placemark);
//String to hold address
NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
NSLog(@"addressDictionary %@", placemark.addressDictionary);
NSLog(@"placemark %@",placemark.region);
NSLog(@"placemark %@",placemark.country); // Give Country Name
NSLog(@"placemark %@",placemark.locality); // Extract the city name
NSLog(@"location %@",placemark.name);
NSLog(@"location %@",placemark.ocean);
NSLog(@"location %@",placemark.postalCode);
NSLog(@"location %@",placemark.subLocality);
NSLog(@"location %@",placemark.location);
//Print the location to console
NSLog(@"I am currently at %@",locatedAt);
//Set the label text to current location
[locationLabel setText:locatedAt];
}];
For more see property of CLPlacemark Link : http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLPlacemark_class/Reference/Reference.html (Support in iOS 5.0 because in previous MKReverseGeocoder is deprecated)