我有一个在constant.h文件中的枚举(Objective-C)
typedef NS_ENUM (NSInteger, EEFieldType) {
EEFieldTypeHighFields = 1,
EEFieldTypeMediumFields = 2,
EEFieldTypeLowFields = 3
};
我有一个桥接文件连接到swift代码并导入一个文件名为profile的文件。
(ModuleName-Bridging-Header.h)
#import "Profile.h"
使用以下方法的配置文件,该方法未在代码中编译。
- (EEFieldType)fieldTypeByPFType;
错误:预计EEFieldType上的类型。
答案 0 :(得分:1)
[答案移动并从评论中扩展]
有关使用评论中添加的预编译头文件(.pch
)的其他信息,您的问题归结为Swift不使用.pch
文件 - 它们是Objective-C编译器功能。
在Objective.c中Profile.h
编译它所依赖的标题constant.h
,由.pch
导入。
在Swift Profile.h
中产生缺失的类型错误,因为它不导入定义类型的constant.h
。
只需在constant.h
中导入Profile.h
。
注意:这样做不仅适用于Swift,它继续对Objective-C正常工作 - .pch
功能是一个加速头处理的编译器选项,Objective-C编译器将继续使用它,当它在constant.h
中看到Profile.h
导入时,它会轻松跳过.pch
已导入的内容。