我一直试图这样做一段时间,但仍然无法显示多个注释。
以下是我将数据存储到NSMutableDictionary
,然后存储到NSMutableArray
中的AppDelegate
// set the values to mutable dictionary
[_locationDictionary setObject:latitudeObj forKey:@"latitudeValue"];
[_locationDictionary setObject:longitudeObj forKey:@"longitudeValue"];
[_locationDictionary setObject:fromUser forKey:@"fromUser"];
// add to array
[_presenceArray addObject:_locationDictionary];
这是我在另一个ViewController中做的。
-(void)getPresenceData {
for(NSDictionary *dictObj in appDelegate.presenceArray) // this array that has dictionaries
{
annotation = [[Annotation alloc]init]; // Annotation Class
annotation.coordinate = CLLocationCoordinate2DMake([[dictObj valueForKey:@"latitudeValue"]doubleValue], [[dictObj valueForKey:@"longitudeValue"]doubleValue]);
annotation.title = [dictObj objectForKey:@"fromUser"];
[self.buddyDataArray addObject:annotation];
NSLog(@"buddy data array is %@", self.buddyDataArray);
[self.mapView addAnnotations:buddyDataArray];
}
答案 0 :(得分:0)
你可以尝试这种方式......确保你的presenceArray
词典得到存储。
-(void)getPresenceData {
for(NSDictionary *dictObj in appDelegate.presenceArray) // this array that has dictionaries
{
annotation = [[Annotation alloc]init]; // Annotation Class
annotation.coordinate = CLLocationCoordinate2DMake([[dictObj valueForKey:@"latitudeValue"]doubleValue], [[dictObj valueForKey:@"longitudeValue"]doubleValue]);
annotation.title = [dictObj objectForKey:@"fromUser"];
[self.mapview addAnnotation:annotation];
}
}
由于您已经循环而不需要创建注释对象数组..您可以直接将它们添加到地图中,就像我在上面的代码中所做的那样。