我创建了一个接收坐标的对象,并假设在对其进行反向地理编码后返回一个地标。问题是这个方法是异步的,所以我需要一种方法来在找到地标后返回它。在我的视图控制器中,我称之为:
[getzip reverseGeocodeCurrentLocation:coordinate];
其中 getzip 是实现这个的对象的一个实例(在我的情况下它仍然是空的......):
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
现在,一旦我进入 reverseGeocoder:didFindPlacemark,如何将地标返回给视图控制器?
我尝试做与我在使用 LocationManager 完成的一些示例中看到的相同的事情,其中从 locationManager:didUpdateToLocation:fromLocation 调用 locationUpdate 方法,并在视图控制器中实现 locationUpdate,但它不起作用。换句话说,我是这样做的:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
[self.delegate setPlacemark:placemark];
}
并在viewcontroller中实现了setPlacemark,但由于某种原因它没有到达setPlacemark(顺便说一句,一旦我在reverseGeocoder中调用setPlacemark:placemark,地标就是正确的)。
谢谢!