Macro to detect availability of class properties in Objective-C

242 Views Asked by At

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

There are 1 best solutions below

0
On

Searching the LLVM source code I found:

#if __has_feature(objc_class_property)

…which works perfectly.