追赶NS_AVAILABLE_IOS而编码(Catching NS_AVAILABLE_IOS wh

2019-09-23 08:20发布

我知道如何更改与支持的最低OS IPHONEOS_DEPLOYMENT_TARGET 。 我目前的Xcode 4.5下开发和使用了iOS 6.0 SDK。

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

所以,我可以保证我不会错过会崩溃用户的设备的任何“是的,但你在iOS 5,所以不要使用此代码”区域。

Answer 1:

NS_AVAILABLE_IOS(6_0)被定义为__attribute((unavailable))当SDK是比6.0 ...但是当SDK是6.0或更高版本的定义是什么。

所以只要你用SDK 6.0编译,将有概念上#define NS_AVAILABLE_IOS(6_0) /* noop */所以你将不能够检测到任何东西。

唯一的选择是重新定义IPHONE_OS_VERSION_MAX_ALLOWED欺骗编译器,使其认为它使用的是较旧的SDK,但我什至不知道,有可能重新定义它很快在之前NSObjCRuntime.hAvailabilityMacros.h包括头。



文章来源: Catching NS_AVAILABLE_IOS while coding
标签: iphone sdk ios6