NSFoundationVersionNumber и версии iOS

Хорошо, мои вопросы действительно просты, я думаю.

Я использую NSFoundationVersionNumber для проверки версии моего приложения и сделаю его совместимым с iOS6 и iOS7.

if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1 ){
//Here goes the code for iOS 7 
}

else if (NSFoundationVersionNumber == NSFoundationVersionNumber_iOS_6_1){
//Here goes the code for iOS 6.1
}

Ну, насколько я знаю, Apple выпустила версии 6.1.X.Так же, используя второй оператор else-if, версии 6.1.X исключены из списка совместимых версий, которые я делаю? Если да, это ответ, тогда как я могу определить, если устройство работает в версиях 6.1.X?

Большое спасибо:)

Ответ 1

Когда NSFoundationVersionNumber == NSFoundationVersionNumber_iOS_6_1 истинно, тогда устройство имеет 6.1.X.

Если NSFoundationVersionNumber == NSFoundationVersionNumber_iOS_6_0 истинно, устройство имеет 6.0.X.

Когда NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_6_0 истинно, устройство имеет 5.1.X и ниже.

Когда NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1 истинно, устройство имеет 7.0 и более.

Ответ 2

Apple забыла предоставить NSFoundationVersionNumber константы для iOS 7, 10.8 и 10.9, но вы можете получить номера NSLogging вне вашего NSFoundationVersionNumer (который дает вам NSFoundationVersionNumber вашей текущей ОС)

Ответ 3

В iOS 8 теперь Apple предоставляет структуру NSOperatingSystemVersion в NSProcessInfo

Вы можете использовать его с помощью isOperatingSystemAtLeastVersion: или просто проверить 3 поля, чтобы точно узнать, какая версия системы работает с вашим приложением.