С MapKit в iPhone 3.0 SDK вы создаете объекты, которые соответствуют протоколу MKAnnotation. Загрузка их в MKMapView очень проста. Однако когда пользователь прокручивает MKMapView, пора загружать новые аннотации. Вероятное место для запроса новых объектов будет в mapView: regionDidChangeAnimated: , которое вызывается при изменении региона карты, а затем добавляет / заменяет аннотации новыми.
В частности, я бы хотел запросить базовые данные, чтобы получить все объекты, которые существуют в текущем MKCoordinateRegion (mapView.region), так что я загружаю только те объекты, которые будут показаны на экране , У объектов в Базовых данных есть атрибуты широты и долготы (и атрибут CLLocation определен в классе '.m / .h, который я могу заполнить вручную из этого) и использую его для NSP-предиката для поиска близлежащих объектов.
Из-за того, сколько объектов существует в базе данных Core Data, мы не можем предварительно загрузить ВСЕ объекты в качестве аннотаций, иначе у нас не хватит памяти (и это будет мучительно медленно).
Как получить только те объекты, которые имеют местоположения в текущих границах карты?