Swift 获取、判断 系统版本号

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)

你可能感兴趣的:(Swift 获取、判断 系统版本号)