导入 Obj-C 文件,该文件导入自动生成的 Swift 标头



这是在桥接头中导入文件的部分副本,该文件导入了 Swift 头,但我遇到了与 Rich 相同的问题

但是在 Swift 中声明的枚举呢? :(

我正在将Obj-C iPad应用程序移植到iPhone上。然而,我是一名 Swift 开发人员,他真的宁愿不重写现有功能;改为替换 UI。

我为iPhone版本创建了一个新目标。在我的桥接标头中,我导入了一个使用#import "ProjectName-Swift.h"的 obj-c 类。由于此文件是自动生成的,因此在构建此新目标时不存在。链接的答案是添加一个@class但遗留代码使用了一个枚举,该枚举现在给出错误"预期的类型"。

// File that I am currently importing
-(void)setSmileyType:(SmileyFace)type andDelegate:(id<NumberRatingDelegate>)delegate;
// This line now throws an error "Expected a type"
//File that was previously auto imported
@objc public enum SmileyFace: Int {

Swift中的@objc enum在 ProjectName-Swift.h 中显示为 C-枚举。 (使用宏SWIFT_ENUM.(

你可以把这样的东西放到使用 Swift 枚举的 Objective-C 头文件中:

typedef enum SmileyFace: NSInteger SmileyFace;

(与使用宏SWIFT_ENUM生成的代码的第一部分相同。

最新更新