как запустить приложение my iphone 2.0 в iphone os 2.0, а также в ОС 3.0 и выше

StackOverflow https://stackoverflow.com/questions/1464239

Вопрос

у меня есть iphone с версией os.2.0 я читал, что для App Store все приложения должны быть запущены 3.0 os.so как я мог бы заставить свое приложение работать в обоих firmware.is есть способ, которым я могу определить, если версия ОС> 3.0 затем запускает другие статусы, или запускать статусы для ОС ниже 3.0. в настоящее время я использую это.

#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;    
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];  
#endif

будет ли он работать на обеих прошивках

я хочу, чтобы мое приложение работало на ОС >= 3.0 и ниже этой ... пожалуйста, помогите мне

как мне проверить мое приложение на наличие устаревших методов ... я вижу только эту строку как устаревшую cell.text= значение ячейки;

нужно ли что-нибудь изменить.я установил новый sdk с именем iphone_sdk_3.0__leopard__9m2736__final.dmg

Это было полезно?

Решение

Ваш приведенный выше код не будет выполняться на обоих наборах операционных систем.Когда вы используете инструкции #if, вы в основном исключаете код для одной версии ОС для этой конкретной сборки.Другими словами, каждая версия, которую вы создаете, одна, когда вы определяете __IPHONE_3_0, и одна, когда вы этого не делаете, будет исключать код для другой.

То, что вы делаете, - это создание двух исполняемых файлов, один из которых создан для __IPHONE_3_0, а другой для !__IPHONE_3_0.

Если вы хотите создать один исполняемый файл, то есть одно приложение, которое работает на обоих, то вам нужно заменить инструкции #if на ifs во время выполнения, а не на #ifs во время компиляции, например:

if (theOS >= kiPhone3)
   ....
else
   ....

Вы также можете создавать ссылки в библиотеках, которые выпускаются только версии 3.0, но проверять доступность фреймворка во время выполнения, а затем пропускать вызов, если методы недоступны.Существуют различные вызовы, которые вам нужно будет использовать: один для проверки, доступен ли метод, а другой для того, доступен ли класс:

Class newClass = (NSClassFromString(@"NewClassName"));
    if (newClass != nil)

И последнее, существует более поздняя версия SDK, чем та, о которой вы упомянули.

Удачи вам!

Другие советы

Там был один похожий пост некоторое время назад.Взгляните на образец MailComposer от Apple, чтобы увидеть пример приложения, поддерживающего прошивку 3.0 и 2.x

Если вы создадите его на основе SDK 2.0 (или 2.1, или 2.2.1 и т.д.), он будет работать на этом SDK и любой более поздней версии, если Apple специально не прекратит поддержку этого SDK.Я вижу множество приложений в App Store, в которых говорится, что они работают с iPhone OS 2.x или более поздней версии, и они отлично работают на моем iPhone 3G под управлением 3.1.

Директивы if-else скроют одну часть кода от компилятора, поэтому он не будет выполняться в обоих программах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top