如何检测我是否正在访问仅限iOS6的方法?

时间:2012-11-28 01:54:18

标签: ios ios6 selector

  

可能重复:
  Is there a way for XCode to warn about new API calls?

我正在构建一个支持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设备上失败,因为选择器不存在。

1 个答案:

答案 0 :(得分: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"