iPhone проверить версию прошивки - PullRequest
3 голосов
/ 10 мая 2009

Привет все

Я хочу сделать одно приложение для iPhone 2.2. * И для версии 3.0. Какой-то метод в 2.2 * устарел в 3.0. (например, UITableViewCell setText и setLabel)

Есть ли способ проверить, какая версия прошивки используется на iPhone, и установить другой метод для использования

Ответы [ 4 ]

13 голосов
/ 10 мая 2009

Вам потребуется использовать директивы препроцессора для условной компиляции, такие как __IPHONE_3_0, и создать два отдельных исполняемых файла.

Например:

 #ifdef __IPHONE_3_0
 // code specific to version 3
 #else
 // code specific to version 2
 #end

Если вам нужно определить версию во время выполнения, вы можете использовать [[UIDevice currentDevice] systemVersion]. Возвращает строку с текущей версией iPhone OS.

5 голосов
/ 10 мая 2009

Как я уже упоминал в комментариях, проверьте: Как настроить таргетинг на конкретную версию iPhone?

0 голосов
/ 10 марта 2014

Альтернативное решение, просто проверьте, используя responseds ToSelector. Например -

CGSize expectedLabelSize;
    if ([subTitle respondsToSelector:@selector(sizeWithAttributes:)])
    {
        expectedLabelSize = [subTitle sizeWithAttributes:@{NSFontAttributeName:subTitleLabel.font}];
    }else{
        expectedLabelSize = [subTitle sizeWithFont:subTitleLabel.font constrainedToSize:subTitleLabel.frame.size lineBreakMode:NSLineBreakByWordWrapping];
    }
0 голосов
/ 12 мая 2009

Как упоминалось в другом ссылочном потоке, хотя вы можете использовать директивы препроцессора для генерации двух приложений из одной базы кода, вам все равно понадобятся два приложения (одно для 2.x и одно для 3.x)

Директива времени компиляции не может быть использована для принятия решения во время выполнения.

В другой теме больше подробностей.

...