NS_ENUM 添加到桥接头文件后对象无法编译
NS_ENUM object not compile after added in bridging header file
我有一个枚举在 constant.h 文件 ( Objective-C )
typedef NS_ENUM (NSInteger, EEFieldType) {
EEFieldTypeHighFields = 1,
EEFieldTypeMediumFields = 2,
EEFieldTypeLowFields = 3
};
我有一个连接到 swift 代码的桥接文件,并导入一个文件名为 profile 的文件。
(模块名称-桥接-Header.h)
#import "Profile.h"
使用以下未在代码中编译的方法的配置文件。
- (EEFieldType)fieldTypeByPFType;
错误:需要 EEFieldType 类型。
[从评论中移动和扩展的答案]
在评论中添加了有关使用 pre-compiled header 文件 (.pch
) 的附加信息后,您的问题归结为 Swift 没有使用 .pch
文件 – 它们是 Objective-C 编译器功能。
在Objective.c中Profile.h
编译为它依赖的header,constant.h
由.pch
导入。
In Swift Profile.h
产生缺失类型错误,因为它没有导入定义类型的 constant.h
。
只需在 Profile.h
中导入 constant.h
。
注意:这样做不仅适用于 Swift 它继续正确适用于 Objective-C – .pch
功能是一个编译器选项,可以加速 header 处理Objective-C 编译器将继续使用它,当它在 Profile.h
中看到 constant.h
导入时,它将简单地跳过它,因为它已经被 .pch
.[=23= 导入]
我有一个枚举在 constant.h 文件 ( Objective-C )
typedef NS_ENUM (NSInteger, EEFieldType) {
EEFieldTypeHighFields = 1,
EEFieldTypeMediumFields = 2,
EEFieldTypeLowFields = 3
};
我有一个连接到 swift 代码的桥接文件,并导入一个文件名为 profile 的文件。
(模块名称-桥接-Header.h)
#import "Profile.h"
使用以下未在代码中编译的方法的配置文件。
- (EEFieldType)fieldTypeByPFType;
错误:需要 EEFieldType 类型。
[从评论中移动和扩展的答案]
在评论中添加了有关使用 pre-compiled header 文件 (.pch
) 的附加信息后,您的问题归结为 Swift 没有使用 .pch
文件 – 它们是 Objective-C 编译器功能。
在Objective.c中Profile.h
编译为它依赖的header,constant.h
由.pch
导入。
In Swift Profile.h
产生缺失类型错误,因为它没有导入定义类型的 constant.h
。
只需在 Profile.h
中导入 constant.h
。
注意:这样做不仅适用于 Swift 它继续正确适用于 Objective-C – .pch
功能是一个编译器选项,可以加速 header 处理Objective-C 编译器将继续使用它,当它在 Profile.h
中看到 constant.h
导入时,它将简单地跳过它,因为它已经被 .pch
.[=23= 导入]