for - swift ios basics
Referencia ambigua al miembro ''=='' (2)
Debe ser un error básico, pero no puedo ver lo que está mal en este código:
.... object is some NSManagedObject ....
let eltType = ((object.valueForKey("type")! as! Int) == 0) ? .Zero : .NotZero
En tiempo de compilación, recibo este mensaje:
Ambiguous reference to member ''==''
Comparando un Int a 0 no me parece ambiguo, entonces, ¿qué me estoy perdiendo?
El mensaje de error es engañoso. El problema es que el compilador no tiene información de qué tipo son los valores .Zero
, .NotZero
refieren a.
El problema tampoco está relacionado con los objetos administrados o con el método valueForKey
, obtendría el mismo mensaje de error para
func foo(value: Int) {
let eltType = value == 0 ? .Zero : .NotZero // Ambiguous reference to member ''==''
// ...
}
El problema se puede resolver especificando un valor completamente escrito
let eltType = value == 0 ? MyEnum.Zero : .NotZero
o proporcionando un contexto desde el cual el compilador puede inferir el tipo:
let eltType: MyEnum = value == 0 ? .Zero : .NotZero
Quitar la pulsera parece funcionar:
let eltType = (object.valueForKey("type")! as! Int) == 0 ? .Zero : .NotZero