Слабая связь с Интерфейсным Разработчиком - PullRequest
0 голосов
/ 13 ноября 2009

Приложение использует 3.x SDK, но должно работать на устройствах 2.x. Решение, похоже, использует «слабую связь», что я и сделал, но приложение по-прежнему не может * скомпилировать * для iPhone 2.2.1: «Framework не найден MapKit».

Компиляция для цели «Device 3.0 - Debug» в порядке, даже устанавливается на мой iPod Touch с 2.2.1! Работает нормально, пока я не активирую просмотр с помощью MapKit, вылетает, если я это сделаю.

Я создал представление с помощью Interface Builder и перетянул на него объект MkMapView. Насколько я могу судить, это единственная ссылка на MapKit, поэтому вопрос заключается в следующем: когда я использую слабое связывание, могу ли я вообще использовать связанные элементы пользовательского интерфейса в IB? Должен ли я делать все это только в XCode? Угадайте да, но возможность установить и запустить приложение «3.0» на устройстве «2.2.1» смущает меня ...

1 Ответ

2 голосов
/ 25 ноября 2009

Вы не должны загружать nib-файл, который содержит только объекты 3.0, такие как MKMapView, на устройстве 2.0. Это означает, что вы должны проверить из кода доступность фреймворка / классов, которые вы используете в кончике. Если они недоступны, вы не должны загружать перо.

Вот как вы можете проверить, доступен ли набор карт:

if (NSClassFromString(@"MKMapView") != NULL) {
    // load nib, map kit is available
} else {
    // do something else, map kit is not there
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...