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

标签 ios ios6 selector

<分区>

Possible Duplicate:
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 设备上却失败了,因为选择器不存在。

最佳答案

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

下载此 header :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"

关于ios - 如何检测我是否正在访问仅限 iOS6 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596514/

相关文章:

ios - 检测 CCSprite(包含在数组中)在屏幕上拖动手指的触摸

ios - 将 UIPopoverController 的高度更改为 UITextView 的高度

iphone - CFString 内存管理问题

ios5 - iOS 7 发布后,是否还可以向 App Store 提交针对 iOS5 或 iOS 6 的应用程序

android - 使用矢量可绘制色调颜色选择器在膨胀 View 期间崩溃

ios - 将其他 UI 元素添加到 UITableViewCells

ios - 无法在 Whatsapp 上分享文字

ios - UIScrollView 在设备之间改变位置

iOS - 核心数据自动生成模型 - 无法识别的选择器

objective-c - "unrecognized selector"不存在