Лучшая практика для написания приложения для ios4.3, ios5 и ipad - PullRequest
0 голосов
/ 01 декабря 2011

Я только начал писать приложение для ios.
У меня есть 2 вопроса.
Я знаю, что есть некоторые коды, которые отлично работают в ios4.3, но не работают в ios5, и наоборот.Я хочу знать, что является наилучшей практикой для написания приложений как для ios4.3, так и для ios5? Приемлемо ли во время выполнения проверять версию на наличие определенных частей кода?

Я также должен написать то же приложение для Ipad.Итак, я хочу знать, что является лучшим методом для написания приложения для iphone, которое работает также на ipad ??

Спасибо

Ответы [ 2 ]

4 голосов
/ 01 декабря 2011

iOS 5 или iOS 4

Другой способ определения версии - использовать сообщение respondsToSelector: на объектах.Преимущество по сравнению с методом version заключается в том, что вам не нужно знать, какими будут следующие версии iOS для поддержки вашего приложения.(Что, если, например, появится новая версия 5.0.2? Ваше приложение должно знать, что строка "5.0.2" новее, чем "5.0"? Я согласен, что это не будет сложно для кода, но с использованием respondsToSelector:гораздо удобнее)

iPhone / iPod Touch или iPad

Мой обычный способ кодирования универсального приложения (например, iPhone и iPad) - определить базовую реализацию моегопользовательские классы UIViewController, а затем реализовать его версию HD, наследуя поведение по умолчанию, но настраивая его для iPad (переопределение методов работает хорошо, но шаблон делегата может быть лучше: вы получаете предупреждения компиляции, если забыли реализовать методы).

Если вы используете другой файл .xib в начале жизненного цикла приложения (это то, что вы получаете с помощью универсальных шаблонов, предоставляемых XCode), вы можете в конечном итоге определить классы только из Interface Builder, и вам не нужно будет реализовыватьлюбой тест выполнения в вашем коде, чтобы узнать, работаете ли вы на iPhone или iPad.

1 голос
/ 01 декабря 2011

Вы можете получить версию, используя:

[[UIDevice currentDevice] systemVersion];

SystemVersion возвращает строку, например "5.0".Затем вы можете сравнить строки, используя сравнение строк.Например:

NSString *requiredVersion = @"5.0";
NSString *currentVersion = [[UIDevice currentDevice] systemVersion];
if ([currentVersion compare:requiredVersion options:NSNumericSearch] != NSOrderedAscending)
            isItSupported = TRUE;

В документации указано, что вы можете использовать следующее, чтобы определить, есть ли у вас iPhone или iPad:

[[UIDevice currentDevice] model];

Хотя я не использовал это.См. документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...