Я работаю над универсальным приложением, которое использует UIPopoverController для версии iPad. (И базовый SDK, и цели развертывания - iOS 4.3)
Когда я использую симулятор iPhone (версия 4.3) для тестирования путей условного кода для iPad и iPhone, ни слабое связывание, ни подход NSClassFromString(@"UIPopoverController")
не дают ожидаемого поведения.
При тестировании слабого связывания фреймворка UIKit, я обязательно использую компилятор LLVM 2.1 и сделаю фреймворк UIKit «Необязательным» в «Target-> Build Phases-> Link Binary with Libraries». (Как я понимаю, это можно сделать в Xcode 4.1).
Запуск кода
if ([UIPopoverController class]) {
...
_popover = [[UIPopoverController alloc] initWithContentViewController:controller];
...
}
на симуляторе iPhone вылетает приложение, указывающее, что [UIPopoverController class]
не возвращает nil
. Замена [UIPopoverController class]
на NSClassFromString(@"UIPopoverController")
выше, приводит к тому же самому отказу.
Кто-нибудь знает, как заставить эти условные проверки работать при работе на симуляторе?