8

I.e., is it possible to know if my code is compiled under SDK 5.1, or 6.0, or any other version?

4

2 回答 2

14
#ifdef __IPHONE_6_0
    // Will be ignored when compiled under SDK 5.1
#endif

When you are compiling under iOS SDK 5.1 or any other older SDK there is no #define for __IPHONE_6_0, so checking if the macro is defined helps to check the SDK version.

于 2013-08-11T11:44:41.720 回答
2

查看 iOS SDK 中的“ Availability.hAvailabilityInternal.h文件,您会看到可以使用的条件。我链接到的 Apple OpenSource(我在这个密切相关的问题中找到)与您在 SDK 中找到的不同。

例如,我看到“ __IPHONE_OS_VERSION_MIN_REQUIRED”的定义,如果您只想在 iOS 6 及更高版本上编译此代码,您必须确保将其设置为“ __IPHONE_6_0”。

于 2013-08-11T09:05:57.953 回答