3

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

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

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

4

1 回答 1

0

NS_AVAILABLE_IOS(6_0)当 SDK 低于 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头文件之前尽快重新定义它。

于 2012-10-02T14:04:26.857 回答