[英]IOS: how to use NSMutableArray
In my code, I must to store an array inside another array: What's the best way? 在我的代码中,我必须将一个数组存储在另一个数组中:最好的方法是什么?
first: 第一:
NSArray *arrayTemp = myArray;
second: 第二:
NSMutableArray *arrayTemp = [[NSMutableArray alloc]init];
[arrayTemp addObjectsFromArray:myArray];
...instruction....
[arrayTemp release];
By doing arrayTemp = myArray
, you declare arrayTemp
as a new pointer to your existing array myArray
. 通过执行
arrayTemp = myArray
,可以将arrayTemp
声明为指向现有数组myArray
的新指针。 That's not a copy (if you put X in myArray[42], arrayTemp[42] will also be X). 那不是副本(如果将X放在myArray [42]中,arrayTemp [42]也将是X)。
The second variant looks like you're doing a copy of your array, but still the array's values are copied by reference (by pointer), when you seem to need a copy "by value". 第二种变体看起来像是在复制数组,但是当您似乎需要“按值”复制时,仍然通过引用(通过指针)复制数组的值 。
What you should try is simply: 您应该尝试的只是:
NSArray *arrayCopy = [myArray copy];
Beware: from a memory management point of view, this is equivalent to a retain
or a alloc/init
: you should release your arrayCopy
after use. 注意:从内存管理的角度来看,这等效于
retain
或alloc/init
:使用后应释放arrayCopy
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.