iOS小記 -- iOS判斷系統(tǒng)版本號的方法

方法一:直接獲取系統(tǒng)版本 iOS提供了直接獲取系統(tǒng)版本號的方法:

NSString *version = [UIDevice currentDevice].systemVersion;

if (version.doubleValue >= 9.0) {

// 針對 9.0 以上的iOS系統(tǒng)進行處理

} else {

// 針對 9.0 以下的iOS系統(tǒng)進行處理

}

這種方法應(yīng)該說也是最常見和常用的方法了。


方法二:通過Foundation框架版本號

iOS系統(tǒng)升級時Foundation框架也會升級版本號,我們可以通過獲取Foundation的版本號來判斷對應(yīng)的iOS版本,這個iOS也提供了很直觀的宏來進行判斷:

if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_9_0) {

// iOS 9.0 以上系統(tǒng)的處理

} else {

// iOS 9.0 以下系統(tǒng)的處理

}


方法三:根據(jù)特有的類判斷

比如說 UIAlertController 這個類,是iOS 8之后才出現(xiàn)的,用來取代 UIAlertView 和 UIActionsheet 的,如果當前系統(tǒng)沒有這個類,說明是低于iOS 8的,可以這么判斷:

if (NSClassFromString(@"UIAlertController")) {

// 存在這個類 // iOS 8.0 以上系統(tǒng)的處理

} else {

// iOS 8.0 以下系統(tǒng)的處理

?}


方法四:根據(jù)特有的方法進行判斷

類似于根據(jù)特有的類來判斷,有些方法也是某個系統(tǒng)版本之后才出現(xiàn)的,根據(jù)有無這個方法即可得知當前版本號的范圍,比如 boundingRectWithSize:options:attributes:context: 這個方法是 iOS 7.0 之后才有的,可以這樣判斷:

if ([@"" respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {

// 存在這個方法 // iOS 7.0 以上系統(tǒng)的處理

} else {

// iOS 7.0 以下系統(tǒng)的處理

}

其實根據(jù)類和方法來判斷直接就可以決定使用什么類和方法了,也算是跳過了先判斷系統(tǒng)然后選擇方法這一步,嚴格來說已經(jīng)不算是為了判斷系統(tǒng)版本了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容