iphone - 编码时捕获 NS_AVAILABLE_IOS

标签 iphone sdk ios6

我知道如何更改 IPHONEOS_DEPLOYMENT_TARGET 支持的最低操作系统。我目前正在 Xcode 4.5 下进行开发并使用 iOS 6.0 SDK。

我想做的是找到一种方法,每当我使用标记的代码时在编译中抛出警告: NS_AVAILABLE_IOS(6_0)

这样我就可以确保不会错过任何会导致用户设备崩溃的“是的,但您使用的是 iOS 5,所以不要使用此代码”区域。

最佳答案

当 SDK 低于 6.0 时,

NS_AVAILABLE_IOS(6_0) 定义为 __attribute((unavailable))...但当 SDK 为 6.0 或更高版本时,定义为空.

因此,只要您使用 SDK 6.0 进行编译,概念上就会有 #define NS_AVAILABLE_IOS(6_0)/* noop */,因此您将无法检测到任何内容。

唯一的选择是重新定义IPHONE_OS_VERSION_MAX_ALLOWED来欺骗编译器并使其认为它使用较旧的SDK,但我什至不确定是否可以在之前重新定义它包含 >NSObjCRuntime.hAvailabilityMacros.h header 。

关于iphone - 编码时捕获 NS_AVAILABLE_IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691673/

相关文章:

iphone - 两个版本的 iOS 应用程序 - 免费和付费 - 如何有条件地更改 Xcode 中的项目 ID?

c# - 无法创建 Amazon Web Services (AWS) 凭据对象

android - 无法为 flutter 医生找到 android SDK

Windows 95 平台 SDK?

ios - SDWebImage 滚动时清除图像缓存?

ios - insertSublayer 将隐藏表格 View 中的单元格

iphone - UITableView 中的 moveRowAtIndexPath 导致动画不正确

iphone - 如何使具有不同 subview 的UITableViewCell可重用?

iphone - 在 iPad 设备上测试应用程序

iOS 6 旋转 : Pushing a View Controller