如何在字典数组中设置iOS中的多个注释

时间:2013-11-28 11:17:27

标签: ios nsarray mapkit nsmutabledictionary

我一直试图这样做一段时间,但仍然无法显示多个注释。 以下是我将数据存储到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];
}

1 个答案:

答案 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];
    }
}

由于您已经循环而不需要创建注释对象数组..您可以直接将它们添加到地图中,就像我在上面的代码中所做的那样。