我发现在系统标题中的很多地方都有一个UIKIT_DEFINE_AS_PROPERTIES
宏,如下所示:
#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) UIDevice *currentDevice;
#else
+ (UIDevice *)currentDevice;
#endif
但是我找不到它的价值。
UIKIT_DEFINE_AS_PROPERTIES
的用途是什么,在哪里定义?是为了迅速吗?
最佳答案
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_EXTRA
和SWIFT_SDK_OVERLAY_UIKIT_EPOCH
宏控制Objective-C代码如何导入到Swift中,比较ClangImporter.cpp。