【发布时间】:2013-12-24 02:54:58
【问题描述】:
在过去的 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 没有?
我意识到这是一个“基础”类型的问题,但我已经查看了一些我的首选参考资料,他们解释事物的方式确实无法帮助我解决当前的困惑。
感谢您的帮助。
【问题讨论】:
标签: ios objective-c xcode cllocation clgeocoder