2011-07-06 37 views
2

我有一组注释。MKMapView:显示或隐藏不带循环的注释数组

NSArray *annotations = [mapView annotations]; 

我可以通过循环数组来显示或隐藏它们。

for (i=0; i<[annotations count]; i++) 
    { 
     annotation = (AddressAnnotation*)[annotations objectAtIndex:i]; 
     [[mapView viewForAnnotation:annotation] setHidden:YES]; 
    } 

但有没有办法做到这一点没有循环?

我们可以通过该方法添加注释

- (void)addAnnotations:(NSArray *)annotations; 

此外,我们可以像下面去掉注释:

- (void)removeAnnotations:(NSArray *)annotations; 

但我不能找到任何方法来显示或隐藏批注数组:(

+1

为什么你需要做到这一点没有循环?在这种情况下,循环似乎做了你想要的? – uvesten

+0

,因为我想节省时间显示或隐藏注释,我有大约3000注释 – itsazzad

+2

'循环'是不可避免的。即使有一个API来隐藏注释数组,您仍然需要在整个集合上_iterate_。 – Hyperbole

回答

1

不知道你是否解决了这一点,但在MapKit你可以使用

NSArray *annotationsOnMap = mapView.annotations; 
if ([annotationsOnMap count] > 0) { 
[mapView removeAnnotations:annotationsOnMap]; 
}