[英]Adding an unknown number of annotations to MKMapView
因此,我正在使用该地图为联系人中具有地址的每个人添加点,而且我很难确定如何针对未知数量的联系人进行设置。 现在,按照我设置的方式,只为列表中的最后一个联系人添加了一个图钉。 这是一些代码:address是从addressProperty设置的字符串。
if(addressProperty != nil)
{
[location geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
NSMutableArray *array = [[NSMutableArray alloc]init];
for(int a = 0; a < [placemarks count]; a++)
{
self.placeMarkData = [placemarks objectAtIndex:a];
[point setCoordinate: self.placeMarkData.location.coordinate];
[array addObject:point];
pin.animatesDrop = YES;
point.title = address;
[map addAnnotations:array];
}
}];
}
因此,当我运行该应用程序时,我可以看到在每个位置都设置了图钉,并移至下一个位置,直到它在列表中的最后一个位置结束为止。 如何为每个点添加一个点? 我敢肯定这是一个简单的解决方案,但它现在使我难以理解。
所有这些都必须有一个循环,才能遍历所有联系人。 location
是CLGeocoder吗? 您不应该在同一个地址解析器上设置两个geocodeAddressString函数,而是需要为您所做的每个地址解析初始化一个新的函数(除非您确定之前的异步地理编码已经完成)。
其他四个问题:
point
变量每次都相同。 当您更改坐标时,该点将显示在地图上的不同位置,但是它是相同的,因此您永远不会在地图上看到更多的东西。 pin
是什么? array
之前,请不要在array
中添加array
。 如果您希望尽快在屏幕上显示这些点,则将它们分别添加到地图中。 添加整个数组,然后向该数组添加其他内容,然后再次添加整个数组是浪费的。 似乎是代码中的一个简单错误。 您可以尝试移动[map addAnnotations:array];
for循环之外的一行?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.