我在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不能转换为'NativeObject'。我正在使用xCode 6-Beta3。任何想法。
感谢 礼
答案 0 :(得分:2)
您的枚举不能直接导入Swift,因为它不使用NS_ENUM
宏。在Swift中重写枚举(使用Int
,而不是long
)或合并NS_ENUM
。在任何情况下,在任何情况下使用long
都是一个非常糟糕的主意,因为它不会作为本机类型进入Swift,而NSInteger将作为Int进入。