Добавление ссылки
Теперь, когда вся вспомогательная работа проведена, добавьте ссылки IBOutlet и приведенный ранее код Мар Kit, чтобы карта заработала в приложении. Не забудьте связать ссылку IBOutlet в Xcode и вызвать новый метод initializeMapView в viewWillAppear.
Реализуйте отображение карты с местом поимки преступника.
Добавьте библиотеку Map Kit и директиву #import.
Настройте представление с фотографией для отображения карты.
Добавьте ссылку IBOutlet и код поддержки MKMapView.
Постройте и запустите приложение. Убедитесь, что преступник помечен как пойманный, а поля широты/долготы заполнены. Чтобы увидеть карту, переключите представление. Попробуйте изменить масштаб. В Simulator для этого следует нажать кнопку Option и сделать щелчок.
Попробуйте изменить масштаб карты. В Simulator для этого следует сделать щелчок с нажатой кнопкой Option.
Превосходно! Остается создать маркер, которым отмечено место поимки.
Haд аннотациями придется потрудиться.
Аннотациями называются маленькие флажки, которые появляются при просмотре точки-маркера. В чем проблема, спросите вы? Для использования аннотаций необходима поддержка протокола аннотаций Map Kit. Протокол аннотаций Map Kit позволяет использовать существующие классы и передавать их непосредственно Map Kit. С другой стороны, это означает, что нам придется добавить новый код в класс Fugitive.
Если вы снова воспользуетесь автоматическим генерированием файлов NSManagedObject, изменения будут потеряны.
Полная реализация протокола аннотаций.
Протокол требует наличия свойства coordinate, title и subtitle. Вместо того чтобы синтезировать свойство, мы реализуем его самостоятельно, наша реализация будет возвращать позицию преступника, имя и т. д.
Если бы в нашем приложении ожидалась более значительная миграция данных, то вместо включения кода прямо в класс Fugitive следовало бы реализовать отдельный класс, поддерживающий протокол и содержащий ссылку на Fugitive (композиция).
Включите код с предыдущей страницы в файлы Fugitive.h и Fugitive.m. Затем включите код, выделенный жирным шрифтом, в класс CapturedPhotoViewController.
Вот и все! Сейчас все должно работать. Работа над кодом вроде бы прошла незаметно, но в итоге у нас получилось серьезное, крутое приложение!
Роскошное приложение. Нас ждет большое будущее.
Как насчет версии для iPad? Я уже готов заняться анализом собранной информации.
- Дата: 10-01-2015, 21:09