Macro to detect availability of class properties i

2019-07-03 12:54发布

问题:

Xcode 8 introduces Objective-C class properties and I would like to add one to an Objective-C library.

However I would like the library to still compile with Xcode 7. Is there an availability check I can do at compile time?

Something like

#if __hasFeature(objc_class_properties)
@property (class, readonly, nonatomic) MySingletonClass *shared;
#endif

What does work is:

#if __clang_major__ >= 8

…but I'd like to check for feature availability rather than CLANG version.

回答1:

Searching the LLVM source code I found:

#if __has_feature(objc_class_property)

…which works perfectly.