2010-12-21 5 views
2

Ich kann eine positive Ganzzahl korrekt einem Attribut einer verwalteten Objektmodellinstanz zuweisen und abrufen. Wenn Sie diesem Attribut jedoch eine negative ganze Zahl zuweisen, wird die Nummer "4294967295" in meinem persistenten Hauptspeicher (eine XML-Datei) gespeichert. Wenn die Anwendung neu geladen wird und das verwaltete Objekt erneut instanziiert wird, lautet das Attribut daher "4294967295".Negative Ganzzahl in Core Data speichern

Dieses Attribut ist in meinem DataModel als Typ Integer 32 angegeben und hat einen "Min-Wert" von "-12". Ich vermute, das hat etwas damit zu tun, negative ganze Zahlen als Strings zu speichern. Dieser Code erzeugt die gleichen "4294967295":

NSLog(@"Log -1: %u", -1); 
=> "Log -1: 4294967295" 

Was ist der richtige Weg, um eine negative Zahl in Core Data zu speichern?

Antwort

5

Es ist kein Problem mit Core Data, es ist ein Problem mit Ihrem Formatbezeichner. %u bedeutet, dass das Argument als vorzeichenlose Ganzzahl formatiert werden soll, die nicht negativ sein darf. Verwenden Sie stattdessen %d oder %i (dies sind vorzeichenbehaftete Ganzzahlen).