在过去的 2 个小时里,我一直在努力实现一个CLGeocoder
用于对位置进行反向地理编码的类方法。
在类参考Xcode
下的文档中为此方法提供的代码如下:CLGeocode
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler
我试图在我的代码中使用它并且没有任何运气。因此,我查看了一些旧的 stackoverflow 问题,并找到了一个最终为我工作的实现。
这是对我有用的代码:
-(IBAction)gpsButton {
CLGeocoder *geocoder = [[CLGeocoder alloc]init];
[geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error){
CLPlacemark *placemark = placemarks[0];
NSLog(@"Found %@", placemark.thoroughfare);
}
];
}
我不明白为什么 xcode 文档包含 (CLLocation *) 和 (CLGeocodeCompletionHandler) 而这并不是最终代码真正需要的样子。
是否只是想提醒我“位置”对象应该是 CLLocation 类的实例,而“completionHandler”对象应该是 CLGeocodeCompletionHandler 类的实例?
它是否试图提醒我,在实现此方法之前,我需要为CLLocation
类和CLGeocodeCompletionHandler
类创建和初始化对象,以便该方法可以正常运行?如果是这种情况,那么为什么CLLocation
在 xcode 示例中有一个指针但CLGeocodeCompletionHandler
没有呢?
我意识到这是一个“基本面”类型的问题,但我已经阅读了一些我的首选参考资料,他们解释事情的方式并没有帮助我解决当前的困惑。
感谢您的帮助。