2

可能重复:
XCode 有没有办法警告新的 API 调用?

我正在构建一个支持 iOS 4.3 到 iOS 6.x 的应用程序。但是,我在不知不觉中使用了标记为__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0)的方法。这意味着选择器在以前的 iOS 版本中不存在。

当然,当我在 iOS 5.x 设备上测试我的代码时,应用程序崩溃了。我弄清楚发生了什么,并插入了一个respondsToSelector检查,并在检查失败时默认为“iOS 4.x 方式”的处理方式。

以后如何防止这些错误?是否有一种编译时方法可以确定我正在访问仅限 iOS-6 的方法,以便我可以添加适当的 iOS 功能检查?

我不想意外地发布在我的 iOS6 设备上运行良好的产品,只是让它在某人的 iOS4.3 设备上失败,因为选择器不存在。

4

1 回答 1

1

这里的答案对我有用:https ://stackoverflow.com/a/8919108/208989

下载此标头:https ://github.com/mattjgalloway/MJGFoundation/blob/master/Source/Utilities/MJGAvailability.h

并将以下内容放在 .pch 文件的顶部:

#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_4_3
#import "MJGAvailability.h"
于 2012-11-28T02:40:07.050 回答