operator for example basics apple ios swift operators arithmetic-expressions

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