Хорошо ли мое обновление для пользователей 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... как опциональную.

Другие вопросы по тегам