4
Xcode最近添加了__nonnull
,__nullable
等属性。但是,它们不支持旧版本的clang和其他编译器。如何以向后兼容的方式使用Objective-C __nonnull?
如何以兼容的方式使用这些属性?
我希望像这样的工作:
#ifndef NS_ASSUME_NONNULL_BEGIN
#define __nonnull
#endif
但似乎NS_ASSUME_NONNULL_BEGIN
是不是一个真正的宏,它在Xcode7“没有定义”。
它将使感这个工作:
#if !defined(__is_identifier) || __is_identifier(__nonnull)
#define __nonnull
#define __nullable
#endif
但Xcode的6对扼流圈与“令牌不是在一个预处理子表达式一个有效的二进制运算符”的错误。