ios - Objective-c 枚举在 Swift 中获取错误 "... is not convertible to ' NativeObject'"

标签 ios enums swift

我在我的 objective-c 文件中定义了一个 typedef:

typedef enum : long{
    tb_closed_k = 0,
    tb_open_k
 } MyState;

现在我在我的 Swift 类中创建一个这种类型的成员:

@objc class myClass {
    var activeState: MyState = tb_closed_k

   func testState( state:MyState ){
       if state != activeState{
         ..do something
       }
    }
}

所以比较状态的行给我错误“MyState is not convertible to 'NativeObject'. I am using xCode 6-Beta3. Any Ideas.

谢谢 礼萨

最佳答案

您的枚举不能直接导入到 Swift 中,因为它不使用 NS_ENUM 宏。在 Swift 中重写枚举(使用 Int,而不是 long)或合并 NS_ENUM。无论如何,在这里使用 long 无论如何都是一个非常糟糕的主意,因为它不会作为原生类型进入 Swift,而 NSInteger 将作为 Int 进入。

关于ios - Objective-c 枚举在 Swift 中获取错误 "... is not convertible to ' NativeObject'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703941/

相关文章:

c++ - 在 C++ 中使用枚举作为数组索引

ios - 我可以在 Storyboard 中将导航栏设置为透明吗?

ios - 由于文件 "does not exist",Swift MoveItem 失败

ios - 创建 viewcontroller 的实例并以编程方式对其进行 segue

ios - 如何只为一个 Controller 解锁方向?

iOS https/主机没有 SSL 证书

swift - ui 文本字段更新 SKLabelNode

iphone - 如何将核心数据导出到 CSV

java - 使用 POJO 进行控制反转和依赖注入(inject)

iOs - 如何存储枚举值并重用它