如何知道哪个API不能用于哪个iOS SDK?

时间:2016-03-30 10:42:43

标签: ios xcode compiler-warnings deployment-target base-sdk

Xcode项目具有以下设置:

  • Deployment target: iOS 9.0
  • Base SDK: iOS 9.3 (latest)

据我了解,该应用程序可以安装在iOS 9.0上,并可能尝试访问仅在iOS 9.3之后可用的API。在这种情况下,应用程序会崩溃。

那么如何轻松找出应用程序访问的哪些API在部署目标和基本SDK之前的版本之间的任何版本中都不可用?由于编译器已知部署目标,因此当在代码中使用API​​时,它不会发出警告,当在iOS版本下运行时显然会使应用程序崩溃吗?

2 个答案:

答案 0 :(得分:2)

您在头文件中检查了这一点。

API在iOS 9和iOS 9.3之间不会发生变化,因此您是安全的。另一方面,使用iOS 8的用户无法运行您的应用,这意味着更少的用户,更少的销售,更少的钱。

如果在8.0上部署,则可以在编译时轻松验证是否通过临时将基本SDK更改为8.0来使用某些新API。在这种情况下,您必须确保不要在iOS 8上调用任何iOS 9方法。

答案 1 :(得分:0)

您应该查看课程(' NewFeature',是您正在调用的任何9.3要素类)

if ([NewFeature class]){
   //then use it if available
   //The code will land here if it is available to the OS the device is using
}else{
   //use older alternative way
}