2011-07-06 73 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]; 
}