即,是否可以知道我的代码是在SDK 5.1或6.0或任何其他版本下编译的?
答案 0 :(得分:14)
#ifdef __IPHONE_6_0
// Will be ignored when compiled under SDK 5.1
#endif
当您在iOS SDK 5.1或任何其他旧版SDK下进行编译时,__ IPHONE_6_0没有#define,因此检查宏是否已定义有助于检查SDK版本。
答案 1 :(得分:2)
查看iOS SDK中的文件"Availability.h
"和"AvailabilityInternal.h
",您会看到您可以使用的条件。我链接到(which I found in this closely related question)的Apple OpenSource与您在SDK中找到的不一样。
例如,我看到“__IPHONE_OS_VERSION_MIN_REQUIRED
”的定义,如果您只想在iOS 6&更新,你必须确保将此设置为“__IPHONE_6_0
”。