Хорошо ли мое обновление для пользователей iOS 3.0 (я проверяю, существует ли базовая телефония)?
Подробно: я готов представить обновление своего приложения в Apple. Однако у меня есть одна область сомнений. Я добавил следующий код в заголовок одного из моих классов...
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
и это в основном классе...
if ([CTTelephonyNetworkInfo class]) {
//Now do some telephony stuff ...
Телефония для iOS 4 и выше. Я считаю, что все, кто еще на iOS3 должен быть в порядке из-за if
утверждение, но я не могу проверить это, потому что у меня нет старого устройства, а XCode 4.2 не имеет старого эмулятора.
Моя цель развертывания iOS все еще 3.0, и я бы предпочел сохранить ее таким образом, чтобы каждый мог использовать мое приложение.
Вопрос: мой код правильный? Правильно ли выбрана цель развертывания iOS? Я иду об этом в правильном направлении?
2 ответа
Код правильный (как указывает @SimonH, раньше вам нужно было NSClassFromString
, но это изменилось с какой-то версией компилятора к моменту выпуска 4.0 SDK).
Вы также должны убедиться, что вы слабое звено CoreTelephony
(или в этом отношении любой фреймворк, недоступный в 3.x), поэтому двоичный файл не будет пытаться загрузить его при запуске приложения.
Нет, это не так.
if (NSClassFromString(@"CTTelephonyNetworkInfo") != nil)
{
// use class
}
else
{
// not available, deal with it.
}
Это то, что вы должны использовать. Использование того, что вы написали, приведет к сбою приложения, поскольку он не найдет класс CTTelephonyNetworkInfo. Также вы должны убедиться, что вы установили платформу CorTele... как опциональную.