在这种情况下使用CFMutableArrayRef更聪明吗?

时间:2011-04-28 13:02:38

标签: objective-c c arrays

我需要跟踪数组中的整数值,有时我需要修改数组中的值。

现在我这样做:

// 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 个答案:

答案 0 :(得分:1)

您可以使用replaceObjectAtIndex:withObject:command:

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

这比你的方法更好