NSNumber
Objekte können Ints, Schwimmer, verdoppelt usw. Bens Ansatz (im Vergleich zu einem NSNumber
‚s intValue
) ist sehr schnell und leicht zu lesen, aber es funktioniert nur richtig enthalten, wenn Sie, dass myNumber
ist immer in der garantieren kann, Bereich einer int
(und wird immer, auch nach zukünftigen Code-Änderungen).
Aus diesem Grund ist Ihr Ansatz tatsächlich überlegen, wenn Sie nicht den genauen Typ von myNumber
kennen.
// This will work regardless if myNumber is an int, double etc.
[myNumber isEqualToNumber:[NSNumber numberWithInt:0]]
größere feste Zahlen oder Schwimmer Wenn vergleichen, werden Sie auf jeden Fall diesen Weg zu gehen haben. Auch neuere Versionen von Xcode warnt Sie richtig, wenn Sie einen NSNumber mit der falschen Art zu schaffen versuchen, die vor Ort Probleme frühzeitig helfen können:
Alles in Obj-C fühlt sich ein wenig klobig für eine Weile . – MJeffryes
Mit Literalen ist es nicht ganz so schlimm: '[NSNumber isEqualToNumber: @ 0]' –