自定义swift对象数组不能转为objective-c类型

an array of self-defined swift object can't be converted to objective-c type

swift

的新手

我正在做一个混合语言 (Swift & Objective-C) 程序,在尝试 时遇到错误将 Swift 导入 Objective-C

这是我的代码

@objc public enum ItemType: Int {
  case left, right
}
public class MyClass {
  @objc var items: [ItemType] = []
}

这是错误 enter image description here

ItemType 似乎有问题,但我确实在 -swift.h 文件

中看到了 ItemType 的定义

谁能给我点提示吗?

Swift 和 Objective-c 枚举的性质非常不同。旧 Objective-c 枚举是现代 Swift 枚举的非常小的子集。目前编译器不知道如何使用 Objective-c 代码中的 Swift 枚举,因此它们不能是 @objc 类型。 MyClass 也不能是 @objc 类型,因为它包含 swift 的枚举。