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

时间:2014-07-09 22:20:13

标签: ios objective-c cocoa swift

我有一个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文件。

感谢。

1 个答案:

答案 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标志”部分。