7

Come si memorizzano i valori "int" in un NSMutableArray o NSMutableDictionary? Problemi cronici con i dati JSON che arrivano come numeri interi.Come si memorizzano i valori "int" in un NSMutableArray * o NSMutableDictionary *? Problemi cronici con i dati JSON che arrivano come numeri interi.

Devo provare a memorizzare questi numeri interi come oggetti NSNumber o come stringhe che contengono il numero intero?

Quanto è pericoloso fare un (int) di conversione "raw" sui puntatori se so che i valori saranno sempre numeri naturali (numeri> = 0 compreso lo zero per nulla.)

Gli interi io' sto lavorando sempre con ID chiavi esterne da un database.

risposta

22

Usa NSNumber come questo:

int yourInt = 5; 
[myMutableArray addObject:[NSNumber numberWithInt:yourInt]]; 

o utilizzando moderna sintassi Objective C, è possibile utilizzare il seguente per le espressioni:

[myMutableArray addObject:@(2 + 3)]; 

O per numeri solitari:

[myMutableArray addObject:@5]; 
4

Utilizzare NSNumber oggetti (ad esempio utilizzando [NSNumber numberWithInt:value])

2

È necessario utilizzare NSNumber, come altri hanno già detto, oppure utilizzare NSString con la stringa rappresentata del numero. In realtà non importa quale, ma il NSNumber sarà più efficiente.

È non è sufficiente inserire un int, lascia che sia interpretato come un puntatore e quindi restituirlo nuovamente alla via d'uscita. Il motivo è che l'oggetto (che il int verrà interpretato come puntatore a) verrà inviato il messaggio retain quando viene aggiunto all'array e questo causerà sicuramente un arresto anomalo poiché sarà un puntatore non valido.

2

È anche possibile utilizzare:

[myDict setObject:[NSNumber numberWithInt:anInteger] forKey:@"MyInteger"]; 
0

È inoltre possibile aggiungere valore come questo

NSMutableArray * valori = [alloc NSMutableArray] init];

[valori addObject: [NSNumero numeroWithInt: 23]];