Как выбрать аннотации конкретного класса в видимом прямоугольнике карты - PullRequest
0 голосов
/ 25 мая 2011

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

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    self.LocationSet = [self.mapView annotationsInMapRect:self.mapView.visibleMapRect];

    self.LocationArray = [self.nearbyCarParksSet allObjects];

}

Как правильно выбрать только определенный класс аннотаций, которые я хочу включить в набор / массив? Например, в текущем виде карты у меня могут быть аннотации, относящиеся к классу «Ресторан», классу «автостоянка», классу «АЗС» и т. Д., И я хочу хранить только аннотации, принадлежащие классу «Ресторан» , Каков наилучший подход?

1 Ответ

2 голосов
/ 25 мая 2011

Предполагая, что locationSet имеет все примечания, полученные из первого вызова в методе выше.Вы можете получить все аннотации типа, используя

restaurantSet = [locationSet objectsPassingTest:^(id obj, BOOL *stop){
    return [obj isMemberOfClass:[YourAnnotationSubclass class]];
}];
...