Wie speichern Sie "int" -Werte in NSMutableArray * oder NSMutableDictionary *? Chronische Probleme mit JSON-Daten, die als Ganzzahlen auftreten.

8

Wie speichern Sie "int" -Werte in NSMutableArray oder NSMutableDictionary ? Chronische Probleme mit JSON-Daten, die als Ganzzahlen auftreten.

Sollte ich versuchen, diese Integer als NSNumber Objekte oder nur als Strings, die die ganze Zahl enthalten, zu speichern?

Wie gefährlich ist eine "rohe" (int) Konvertierung der Zeiger, wenn ich weiß, dass die Werte immer natürliche Zahlen sind (Zahlen & gt; = 0 einschließlich Null für Null).

Die Ganzzahlen, mit denen ich immer arbeite, sind Fremdschlüssel-IDs aus einer Datenbank.

    
MikeN 21.01.2011, 22:17
quelle

5 Antworten

23

Verwenden Sie NSNumber wie folgt:

%Vor%

Oder unter Verwendung der modernen Objective-C-Syntax können Sie Folgendes für Ausdrücke verwenden:

%Vor%

Oder für einzelne Zahlen:

%Vor%     
theChrisKent 21.01.2011, 22:23
quelle
4

Verwenden Sie NSNumber Objekte (z. B. mit [NSNumber numberWithInt:value] )

    
Simon Whitaker 21.01.2011 22:23
quelle
2

Sie müssen NSNumber verwenden, wie andere gesagt haben, oder verwenden Sie NSString mit der Zeichenfolgenrepräsentation der Zahl. Es spielt wirklich keine Rolle, aber die NSNumber wird effizienter sein.

Sie können nicht einfach ein int einwerfen, es als Zeiger interpretieren und dann auf den Ausgang zurückwerfen. Der Grund ist, dass das Objekt (dass int als Zeiger interpretiert wird) die Nachricht retain gesendet wird, wenn es zum Array hinzugefügt wird, und dies wird definitiv einen Absturz verursachen, da es ein ungültiger Zeiger sein wird .

    
Jakob Borg 21.01.2011 22:28
quelle
2

Sie können auch verwenden:

%Vor%     
WrightsCS 21.01.2011 22:28
quelle
0

Sie können auch einen Wert wie diesen hinzufügen

NSMutableArray * Werte = [NSMutableArray alloc] init];

[Werte addObject: [NSNummer numberWithInt: 23]];

    
Mr.Guru.Patel 10.01.2014 06:22
quelle