Разумнее ли использовать CFMutableArrayRef в этом случае? - PullRequest
0 голосов
/ 28 апреля 2011

Мне нужно отслеживать целочисленные значения в массиве, а иногда мне нужно изменить значение в массиве.

Прямо сейчас я делаю это:

// Read an integer from the array
NSNumber* num = [NSNumber numberWithInteger:someInteger];
[numArray addObject:num];

Чтобы обновить значение:

// 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

Это так плохо. Так много объектов задействовано, и все потому, что NSNumber неизменен. Теперь я подумал, может быть, я должен уйти в старый добрый C и использовать CFMutableArrayRef? Могу ли я хранить простые значения NSInteger без всяких дополнительных затрат?

1 Ответ

1 голос
/ 28 апреля 2011

Вы можете использовать replaceObjectAtIndex: withObject: команда:

[numArray replaceObjectAtIndex:[array count]-1 withObject:newNum];

Это лучше, чем ваш метод

...