【问题标题】:How to know which API cannot be used in which iOS SDK?如何知道哪个 API 不能在哪个 iOS SDK 中使用?
【发布时间】:2016-07-18 07:35:13
【问题描述】:

一个 Xcode 项目具有以下设置:

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

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

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

【问题讨论】:

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


【解决方案1】:

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

API 在 iOS 9 和 iOS 9.3 之间没有变化,因此您是安全的。另一方面,使用 iOS 8 的人无法运行您的应用程序,这意味着更少的用户、更少的销售额和更少的资金。

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

【讨论】:

    【解决方案2】:

    您应该检查类('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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      相关资源
      最近更新 更多