对成员“==”的不明确引用
Ambiguous reference to member '=='
那一定是个基本错误,但我看不出这段代码有什么问题:
.... object is some NSManagedObject ....
let eltType = ((object.valueForKey("type")! as! Int) == 0) ? .Zero : .NotZero
在编译时,我收到这条消息:
Ambiguous reference to member '=='
将 Int 与 0 进行比较对我来说并没有歧义,所以我错过了什么?
移除手镯似乎有效:
let eltType = (object.valueForKey("type")! as! Int) == 0 ? .Zero : .NotZero
错误消息具有误导性。问题是编译器有
没有信息 .Zero
、.NotZero
指的是什么类型。
该问题也与托管对象或 valueForKey
无关
方法,您会收到与
相同的错误消息
func foo(value: Int) {
let eltType = value == 0 ? .Zero : .NotZero // Ambiguous reference to member '=='
// ...
}
可以通过指定一个完全类型化的值来解决这个问题
let eltType = value == 0 ? MyEnum.Zero : .NotZero
或者通过提供编译器可以推断类型的上下文:
let eltType: MyEnum = value == 0 ? .Zero : .NotZero
那一定是个基本错误,但我看不出这段代码有什么问题:
.... object is some NSManagedObject ....
let eltType = ((object.valueForKey("type")! as! Int) == 0) ? .Zero : .NotZero
在编译时,我收到这条消息:
Ambiguous reference to member '=='
将 Int 与 0 进行比较对我来说并没有歧义,所以我错过了什么?
移除手镯似乎有效:
let eltType = (object.valueForKey("type")! as! Int) == 0 ? .Zero : .NotZero
错误消息具有误导性。问题是编译器有
没有信息 .Zero
、.NotZero
指的是什么类型。
该问题也与托管对象或 valueForKey
无关
方法,您会收到与
func foo(value: Int) {
let eltType = value == 0 ? .Zero : .NotZero // Ambiguous reference to member '=='
// ...
}
可以通过指定一个完全类型化的值来解决这个问题
let eltType = value == 0 ? MyEnum.Zero : .NotZero
或者通过提供编译器可以推断类型的上下文:
let eltType: MyEnum = value == 0 ? .Zero : .NotZero