来自新 iOS 版本的方法,不给出警告,尽管使用旧的 SDK
Methods from new iOS-version, not giving warning, dispite of older SDK
我有一个关于 "deployment target" 和 iOS 版本可用性之间差异的基本问题。例如:
在我的项目中我使用了这行代码:
我 Xcode 我这样设置项目:
它也匹配特定目标下的部署信息。
当我运行这段代码时,它起作用了!但是为什么?
为什么我没有收到任何警告?
我的部署目标低于该特定线路的可用性。为什么编译器不在这里给我一个错误?我正在安装 iOS 9.1 的 iPhone 上测试代码,这是为什么?同样的事情发生在我 运行 模拟器上,还有 iOS 9.1
编辑:
通读 App Distribution Guide and SDK Compatibility Guide 之后,我仍然不明白,当我的基础 SDK 设置为 [=62= 时,为什么允许我使用 运行 "MKMapSize" 方法] 8.0,没有收到任何警告?从目标设置 -> 构建设置中查看图像:
编辑 2:
我找到了一个新方法的例子,它确实给出了我要求的错误:
为什么这个方法会报错,8.1的方法不会报错?
编辑 3:
因此,如果我将此项目上传到应用商店,该应用是否适用于 运行ning iOS 8.0 用户?还是会在执行 MKMapSize
(在 iOS 8.1 及更高版本中可用)时崩溃?
MKMapSize
根据文档添加到 iOS 4 中:
Availability Available in iOS 4.0 and later.
我也注意到关于可用性的鼠标悬停弹出窗口 "lies"。它似乎使用您的目标版本而不是代码中指定的实际可用性,如果实际可用性版本低于您的部署目标。
这可能是一个错误,也可能是因为 iOS 8.1 是您在计算机上安装的最早的 SDK。
我有一个关于 "deployment target" 和 iOS 版本可用性之间差异的基本问题。例如:
在我的项目中我使用了这行代码:
我 Xcode 我这样设置项目:
当我运行这段代码时,它起作用了!但是为什么?
为什么我没有收到任何警告?
我的部署目标低于该特定线路的可用性。为什么编译器不在这里给我一个错误?我正在安装 iOS 9.1 的 iPhone 上测试代码,这是为什么?同样的事情发生在我 运行 模拟器上,还有 iOS 9.1
编辑:
通读 App Distribution Guide and SDK Compatibility Guide 之后,我仍然不明白,当我的基础 SDK 设置为 [=62= 时,为什么允许我使用 运行 "MKMapSize" 方法] 8.0,没有收到任何警告?从目标设置 -> 构建设置中查看图像:
编辑 2:
我找到了一个新方法的例子,它确实给出了我要求的错误:
编辑 3:
因此,如果我将此项目上传到应用商店,该应用是否适用于 运行ning iOS 8.0 用户?还是会在执行 MKMapSize
(在 iOS 8.1 及更高版本中可用)时崩溃?
MKMapSize
根据文档添加到 iOS 4 中:
Availability Available in iOS 4.0 and later.
我也注意到关于可用性的鼠标悬停弹出窗口 "lies"。它似乎使用您的目标版本而不是代码中指定的实际可用性,如果实际可用性版本低于您的部署目标。
这可能是一个错误,也可能是因为 iOS 8.1 是您在计算机上安装的最早的 SDK。