苹果在Xcode 9.0中为Objective-C编程新增了一个有意思的编译器警告,其主要目的是: 一旦你所使用的API最低可用版本超过了你项目的部署版本(所谓的部署版本就是Deployment info中的Deployment target的版本),Xcode就会出现类似下方的编译器警告:
基于上述问题,苹果也相应的引入了一个跟Swift语言很相似的表达式 @available
, 以便在运行时(runtime)执行系统的版本检查:
if (@available(macOS 10.13, iOS 11, *)) {
// The compiler will not warn about uses of APIs from macOS 10.13
// or iOS 11 here
}
当然了你也可以点击编译器警告,让Xcode替你修复上述的警告: