我有一个Objective-C类别,我已经在iOS和OSX项目中使用了一段时间,我想在Swift项目中使用它...直到我有时间翻译它是斯威夫特。
这是我类别的.h文件的顶部:
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <Cocoa/Cocoa.h>
#endif
我已将它包含在桥接头中,但是当我为iOS构建项目时,我收到一条错误消息,说它无法找到Cocoa / Cocoa.h文件。
为什么要找它呢?即使在Swift项目中,条件编译是否仍然有效?它仍在编译Objective-C文件。
感谢。
答案 0 :(得分:12)
在源文件中添加#import "TargetConditionals.h"
。
#import "TargetConditionals.h"
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <Cocoa/Cocoa.h>
#endif
或者将“-DTARGET_OS_IPHONE”添加到目标构建选项的“其他C标志”部分。