UIKIT_DEFINE_AS_PROPERTIES在哪里定义?

时间:2018-11-19 06:20:44

标签: ios objective-c

我发现系统标题中的很多地方都有一个UIKIT_DEFINE_AS_PROPERTIES宏,如下所示:

#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) UIDevice *currentDevice;
#else
+ (UIDevice *)currentDevice;
#endif

但是我找不到它的价值。

UIKIT_DEFINE_AS_PROPERTIES的用途是什么?在哪里定义?

是为了迅速吗?

1 个答案:

答案 0 :(得分:1)

UIKIT_DEFINE_AS_PROPERTIES<UIKit/UIKitDefines.h>中定义为

#if (!defined(SWIFT_CLASS_EXTRA) || (defined(SWIFT_SDK_OVERLAY_UIKIT_EPOCH) && SWIFT_SDK_OVERLAY_UIKIT_EPOCH >= 1))
    #define UIKIT_DEFINE_AS_PROPERTIES 1
#else
    #define UIKIT_DEFINE_AS_PROPERTIES 0
#endif

SWIFT_CLASS_EXTRASWIFT_SDK_OVERLAY_UIKIT_EPOCH宏 控制将Objective-C代码导入Swift的方式,比较ClangImporter.cpp