在Swift项目中对Objective-C进行条件编译

piz*_*lms 4 cocoa objective-c ios swift

我有一个Objective-C类别,我已经在iOS和OSX项目中使用了一段时间,我想在Swift项目中使用它...直到我有时间将它转换为Swift.

这是我的类别的.h文件的顶部:

#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <Cocoa/Cocoa.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我把它包含在桥接头中,但是当我为iOS构建项目时,我得到一个错误,说它无法找到文件Cocoa/Cocoa.h.

为什么要找它呢?即使在Swift项目中,条件编译仍然不起作用吗?它仍在编译Objective-C文件.

谢谢.

Kaz*_*oto 12

添加#import "TargetConditionals.h"源文件.

#import "TargetConditionals.h"
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <Cocoa/Cocoa.h>
#endif
Run Code Online (Sandbox Code Playgroud)

或者将"-DTARGET_OS_IPHONE"添加到目标构建选项的"其他C标志"部分.