如何知道哪个API不能用在哪个iOSSDK中?
How to know which API cannot be used in which iOS SDK?
Xcode 项目具有以下设置:
Deployment target: iOS 9.0
Base SDK: iOS 9.3 (latest)
据我所知,该应用程序可以安装在 iOS 9.0 上,并且可能会尝试访问仅自 iOS 9.3 起可用的 API。在那种情况下,应用程序会崩溃。
那么我如何轻松找出应用程序访问的哪些 API 在部署目标和基础 SDK 之前的版本之间的任何版本中都不可用?由于编译器知道部署目标,所以当在代码中使用 API 时,它不应该发出警告吗?当 运行 低于它的 iOS 版本时,显然会使应用程序崩溃简介?
你在头文件中检查这个。
API 在 iOS 9 和 iOS 9.3 之间没有变化,所以你是安全的。另一方面,使用 iOS 8 的人无法 运行 您的应用,这意味着用户更少、销售额更少、收入更少。
如果您部署在 8.0 上,您可以在编译时通过暂时将基础 SDK 更改为 8.0 轻松验证您是否使用了一些新的 APIs。在这种情况下,您必须确保不要在 iOS 8 上调用任何 iOS 9 方法。
您应该检查 class('NewFeature
',即您调用的任何 9.3 功能 class)
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
}
Xcode 项目具有以下设置:
Deployment target: iOS 9.0
Base SDK: iOS 9.3 (latest)
据我所知,该应用程序可以安装在 iOS 9.0 上,并且可能会尝试访问仅自 iOS 9.3 起可用的 API。在那种情况下,应用程序会崩溃。
那么我如何轻松找出应用程序访问的哪些 API 在部署目标和基础 SDK 之前的版本之间的任何版本中都不可用?由于编译器知道部署目标,所以当在代码中使用 API 时,它不应该发出警告吗?当 运行 低于它的 iOS 版本时,显然会使应用程序崩溃简介?
你在头文件中检查这个。
API 在 iOS 9 和 iOS 9.3 之间没有变化,所以你是安全的。另一方面,使用 iOS 8 的人无法 运行 您的应用,这意味着用户更少、销售额更少、收入更少。
如果您部署在 8.0 上,您可以在编译时通过暂时将基础 SDK 更改为 8.0 轻松验证您是否使用了一些新的 APIs。在这种情况下,您必须确保不要在 iOS 8 上调用任何 iOS 9 方法。
您应该检查 class('NewFeature
',即您调用的任何 9.3 功能 class)
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
}