我有一个关于“部署目标”和 iOS 版本可用性之间区别的基本问题。例如:
我的 Xcode 是这样设置项目的: 它也匹配特定目标下的部署信息。
当我运行这段代码时,它起作用了!但是为什么?
为什么我没有收到任何警告?
我的部署目标低于该特定线路的可用性。为什么编译器不在这里给我一个错误?我正在安装 iOS 9.1 的 iPhone 上测试代码,这是为什么?当我在模拟器上运行它时,同样的事情发生了,也是 iOS 9.1
编辑:
看完App Distribution Guide之后和 SDK Compatibility Guide ,我仍然不明白,当我的基本 SDK 设置为 iOS 8.0 时,为什么允许我运行“MKMapSize”方法,却没有收到任何警告?从目标设置 -> build设置中查看图像:
编辑 2:
我找到了一个新方法的例子,它确实给出了我要求的错误: 为什么这个方法会报错,而 8.1 方法不会报错?
编辑 3:
那么,如果我继续并将该项目上传到应用商店,该应用是否适用于运行 iOS 8.0 的用户?还是会在执行 MKMapSize
(在 iOS 8.1 及更高版本中可用)时崩溃?
最佳答案
MKMapSize
根据文档添加到 iOS 4 中:
Availability Available in iOS 4.0 and later.
我也注意到鼠标悬停弹出窗口“谎言”了可用性。如果实际可用性版本低于您的部署目标,它似乎使用您的目标版本而不是代码中指定的实际可用性。
这可能是一个错误,也可能是因为 iOS 8.1 是您在计算机上安装的最早的 SDK。
关于ios - 来自新 iOS 版本的方法,不给出警告,尽管使用旧的 SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33922647/