【发布时间】:2012-06-21 18:36:20
【问题描述】:
我正在尝试在将注释添加到数组之前检查它是否存在。 我不明白为什么 [visibleAnnotations containsObject:annotation] 总是返回 False。
MKMapRect mRect = self.locationView.visibleMapRect;
NSSet *visibleAnnotations =[self.locationView annotationsInMapRect:mRect];
NSLog(@"Annotation in Rect %@",visibleAnnotations);
for(NSArray * obj in JSON){
coordinates.latitude=[[obj valueForKey:@"Latitude"] doubleValue];
coordinates.longitude=[[obj valueForKey:@"Longitude"] doubleValue];
NSString *title=[NSString stringWithFormat:@"%@",[obj valueForKey:@"DeviceId"]];
MapAnnotation *annotation = [[MapAnnotation alloc] initWithTitle:title andCoordinate:coordinates] ;
NSLog(@"New Annotation %@",annotation);
if ([visibleAnnotations containsObject:annotation ]) {
//[addPins addObject:annotation];
NSLog(@"Contains obj");
}
[addPins addObject:annotation];
[annotation release];
}
缩放至仅显示 1 个注释。
Annotation in Rect {(<MapAnnotation: 0x1cd80720>)}
New Annotation <MapAnnotation: 0x1cd79410>
谢谢
【问题讨论】:
-
您创建一个新的注释对象并立即检查它是否已经在您的集合中。不可能。
标签: objective-c mkmapview nsset