将NSArray转换为MKPlacemark

时间:2016-11-16 17:08:12

标签: ios objective-c mapkit mkplacemark

我有一个前向地理编码块。像这样:

[_geoCoder geocodeAddressString:searchString completionHandler:^(NSArray *placemarks, NSError *error) {....}];

按原样,地理编码数据存储在NSArray *地标中。现在我想对地图进行一些注释,addAnnotation方法需要MKPlacemark,那么如何将NSArray中的地标转换为MKPlacemark?感谢。

1 个答案:

答案 0 :(得分:0)

这是你想要做的:迭代参数数组 - 意思是,从数组中获取每个项目。在我们提取项目时,我们希望使用项目包含的数据创建MKPlacemark对象。

Objective-C语言为我们提供了一个特殊工具,允许我们遍历数组 - “forin”循环:

for (CLPlacemark *placemark in placemarks)
{
// insert code here
}

现在,我们要从“placemark”创建一个MKPlacemark对象:(注意:MKPlacemark对象 是一个CLPlacemark对象)

MKPlacemark *mkPlacemark = [MKPlacemark initWithCoordinate:(CLLocationCoordinate2D)coordinate 
                 addressDictionary:(NSDictionary<NSString *,id> *)addressDictionary;]