gpt4 book ai didi

objective-c - NS_ENUM 对象在添加到桥接头文件后无法编译

转载 作者:行者123 更新时间:2023-11-28 11:58:04 26 4
gpt4 key购买 nike

我有一个枚举,它在 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 类型。

最佳答案

[答案从评论中移动和扩展]

在注释中添加了有关使用预编译头文件 (.pch) 的附加信息后,您的问题归结为 Swift 未使用 .pch文件——它们是 Objective-C 编译器的一个特性。

在 Objective.c 中,Profile.h 编译为它所依赖的头文件,constant.h,由 .pch 导入。

在 Swift 中,Profile.h 会产生类型缺失错误,因为它没有导入定义类型的 constant.h

只需在 Profile.h 中导入 constant.h

注意:这样做不仅适用于 Swift,它还适用于 Objective-C——.pch 特性是一个编译器选项,用于加速 header 处理,Objective-C 编译器将继续要使用它,当它在 Profile.h 中看到 constant.h 导入时,它将简单地跳过它,因为它已经由 .pch 导入。

关于objective-c - NS_ENUM 对象在添加到桥接头文件后无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50528147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com