Vergleichen Sie NSNumber mit NSInteger

Ich verbrachte einige Zeit heute jagt zwei bugs, und am Ende fixieren Sie beide mit der gleichen Lösung.

Nun, ich habe die Lösung, ich war in der Hoffnung, Klarheit zu erhalten dahinter.

Ich Vergleiche ein Attribut von Core Data (Integer 16/NSNumber) mit einer ganzen Zahl (ABPropertyID & ABMultiValueIdentifier).

War der Fehler in diesem Vergleich, und seltsam genug, nur zeigten sich, nachdem ich getötet hatte, die app (aus dem hintergrund-Fach), wiedereröffnet, und führen Sie durch den gleichen Prozess der Vergleich. Anyways...

Dies ist, was aufgehört hat zu arbeiten, nach einem Neustart:

if (myNumber.aProperty == [NSNUmber numberWithInt:anInteger]) { /* do stuff here */}

Und dies sind die beiden Lösungen, die so weit entfernt sind, perfekt zu funktionieren:

if ([myNumber.aProperty integerValue] == anInteger) {/* do stuff here */}

if ([myNumber.aProperty isEqualToNumber:[NSNumber numberWithInt:anInteger]]) { /* do stuff here */}

Mir, dass Sie alle identisch Aussehen. Ich bin immer entweder die Umwandlung der NSNumber eine integerValue, oder die Umwandlung der integer in ein NSNumber.

Irgendwelche Ideen?

InformationsquelleAutor djibouti33 | 2011-03-24
Schreibe einen Kommentar