/ / È più intelligente utilizzare CFMutableArrayRef in questo caso? - obiettivo-c, c, matrici

È più intelligente utilizzare CFMutableArrayRef in questo caso? - obiettivo-c, c, matrici

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