NSNumber
objetos pueden contener enteros, flotador, dobles, etc. enfoque de Ben (en comparación con un NSNumber
's intValue
) es muy rápido y fácil de leer, pero sólo funciona correctamente si se puede garantizar que myNumber
es siempre en el rango de int
(y siempre lo será, incluso después de cambios en el código futuro).
Por esta razón, su enfoque es realmente superior si no conoce el tipo exacto de myNumber
.
// This will work regardless if myNumber is an int, double etc.
[myNumber isEqualToNumber:[NSNumber numberWithInt:0]]
Si se compara con números fijos o flotadores más grandes, tendrá que seguir esta ruta de todos modos. Además, las versiones recientes de Xcode adecuadamente advertirle si se intenta crear un NSNumber con el tipo equivocado, que puede ayudar a detectar problemas temprano:
Todo en Obj-C se siente un poco torpe por un tiempo . – MJeffryes
Usando literales, no es tan malo: '[NSNumber isEqualToNumber: @ 0]' –