NSSet to NSArray преобразование вызова objectAtIndex?

Я пытаюсь обновить MKMapView, удаляя все аннотации за пределами видимой области, а также добавляя и удаляя некоторые аннотации внутри видимой области. Это мой код:

NSSet *visibleAnnotations = [mapView annotationsInMapRect:[mapView visibleMapRect]];
NSSet *allAnnotations = [NSSet setWithArray:[mapView annotations]];
NSMutableSet *nonVisibleAnnotations = [NSMutableSet setWithSet:allAnnotations];
[nonVisibleAnnotations minusSet:visibleAnnotations];
[mapView removeAnnotations:(NSArray *)nonVisibleAnnotations];

NSMutableSet *newAnnotations = [NSMutableSet setWithArray:[_zoomLevels objectAtIndex:clusterLevel]];
[newAnnotations minusSet:visibleAnnotations];
[mapView addAnnotations:(NSArray *)newAnnotations];

Это дает мне ошибку - [__ NSCFSet objectAtIndex:]: неопознанный селектор отправлен в экземпляр 0x13cd40 после последней строки, в которой я передал newAnnotations в NSArray, а затем добавил аннотации. Есть ли что-то в приведении массива к набору, которое вызывает это? Если да, то есть ли способ обойти это?

44
задан benwad 24 January 2012 в 10:13
поделиться