Я немного поискал в Интернете и нашел несколько идей о том, как делать то, что я хочу, но мне все равно хотелось бы знать, что, по вашему мнению, мне следует делать.
Вот контекст:
Я разрабатываю приложение для iOS 5. Я использую MapKit для отображения карты и добавляю к нему около 5000 аннотаций - да, кажется, много, но не волнуйтесь, я использую библиотеку кластеризации :). Чтобы не загружать их каждый раз, когда пользователь открывает карту, я создаю их в моем appDelegate (я создаю массив аннотаций и вызываю [_mapView addAnnotations:[appDelegate.annotationsToAdd allObjects]];
, когда открываю карту). Создание массива annotationsToAdd
занимает около 10 секунд, поэтому я думаю, что это решение работает довольно хорошо (вам нужно подождать эти 10 секунд, прежде чем получить разрешение на открытие карты, но вы ждете только один раз при запуске приложения. ). В каждой из этих аннотаций у меня есть «ссылка» на объект, который содержит массив значений (15 чисел с плавающей запятой). На данный момент, когда я создаю аннотацию, метод subtitle
возвращает одно из этих значений.
В ViewController моей карты у меня есть 2 сегментированных элемента управления. Первый имеет 3 сегмента, второй - 5, что дает 15 комбинаций - да, опять же, такое же количество значений имеет массив объекта в моей аннотации :).
Так что, возможно, вы заметили, что приближается моя проблема, я хотел бы обновить подзаголовок аннотации каждая на моей карте (даже те, что находятся в кластерах, поскольку кластер дает среднее значение на основе закрепленных в нем контактов. ). Я также хотел бы обновить цвет / изображение annotationView на основе значения подзаголовка аннотации.
Возможно, я ошибаюсь, но на основании своих исследований я понимаю, что вы должны удалить все аннотации и воссоздать их все для этого. вы понимаете, что это не вариант в моем случае. Я не могу заставить пользователя ждать 10 секунд каждый раз, когда он изменяет значение одного из элементов управления.
Я видел статью о KVO: может ли это быть рабочее решение?
Я мало что знаю о NSNotification, но стоит ли мне их использовать?
Я был бы очень признателен за вашу помощь, и я был бы еще более признателен за подробный ответ, показывающий мне шаги, которые нужно предпринять в моей явно необычной ситуации.
Заранее спасибо.