Ho bisogno di tenere traccia dei valori interi in un array, e talvolta ho bisogno di modificare un valore nella matrice.
In questo momento lo faccio:
// Read an integer from the array
NSNumber* num = [NSNumber numberWithInteger:someInteger];
[numArray addObject:num];
Per aggiornare un valore:
// Update an integer in the array
NSNumber* num = [numArray lastObject]; // get old
NSInteger numInt = [numInt integerValue]; // convert
NSNumber* newNum = [NSNumber numberWithInteger:numInt + someAddition]; // create new
[numArray removeLastObject]; // remove old
[numArray addObject:newNum]; // set new
Questo è così brutto. Così tanti oggetti coinvolti e tutti perché NSNumber è immutabile. Ora ho pensato che forse dovrei scendere nel buon vecchio C e usare CFMutableArrayRef? Posso archiviare valori NSInteger semplici là senza tutto questo sovraccarico?
risposte:
1 per risposta № 1È possibile utilizzare replaceObjectAtIndex: withObject: comando:
[numArray replaceObjectAtIndex:[array count]-1 withObject:newNum];
È meglio del tuo metodo