1. 通过UIDevice获取版本号
//获取当前字符串类型的版本号信息,一般不会用作版本号判断
let sysVersionString = UIDevice.current.systemVersion
注:
Swift 中不建议使用方法4的 systemVersion,因为 UIDevice 在 macOS 中不存在,不能在所有平台上使用同样的代码路径。
macOS中没有UIDevice可使用NSAppKitVersionNumber
2. 判断系统版本号
2.1 #available
(常用)
if #available(iOS 8.0, *) {
//系统版本高于8.0
} else {
//系统版本低于8.0
}
// 电视系统版本判断
if #available(tvOS 1.0, *) { } else { }
// 电脑系统版本判断
if #available(OSX 10.11, *) { } else { }
// 手表系统版本判断
if #available(watchOS 1.0, *) { } else { }
// 同时判断多个系统的版本的写法
if #available(iOS 9.0, macOS 10,*) { } else { }
2.2 利用ProcessInfo
来判断是否高于指定的版本号 (感觉较麻烦)
/*majorVersion:主版本号;minorVersion:次版本号;patchVersion:最后一位小版本号*/
let systemVersion = OperatingSystemVersion(majorVersion: 8, minorVersion: 0, patchVersion: 0)
if ProcessInfo.processInfo.isOperatingSystemAtLeast(systemVersion) {
//系统版本高于8.0
} else {
//系统版本低于8.0
}
2.3 通过系统宏定义的Double类型版本号进行判断 (效率高)
if NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0 {
//系统版本高于8.0
} else {
//系统版本低于8.0
}
或自定义
let iOS8 = floor(NSFoundationVersionNumber) > floor(NSFoundationVersionNumber_iOS_7_1)
let iOS7 = floor(NSFoundationVersionNumber) <= floor(NSFoundationVersionNumber_iOS_7_1)
网友评论