以iOS系統(tǒng)的版本號來舉例說明
錯誤示范:
一疯兼、floatValue的問題
[UIDevice currentDevice].systemVersion.floatValue > 10.3
首先,NSString轉(zhuǎn)float類型時吧彪,精度會丟失。
其次秧倾,如果要和10.3.1比較時,10.3.1不是float類型那先,無法比較,只能和兩段式的版本號比較斤葱。
二揖闸、compare的問題
[[UIDevice currentDevice].systemVersion compare:@"9.0"] != NSOrderedAscending
上面的代碼,在iOS 10之前的機器上是沒毛病的楔壤。
iOS 10的機器上,上面的代碼判斷會失效递瑰。
原因是compare:
方法會先比較第一位隙畜,如果你設(shè)備版本號是10.3.1,那么第一位是1议惰,用它和9比較。而不是你想象中的用10和9比較俯萎。
正確示范:
使用compare: options:
方法
[[UIDevice currentDevice].systemVersion compare:@"9.0" options:NSNumericSearch] != NSOrderedAscending
options:
設(shè)置為NSNumericSearch
就解決了运杭。