简体   繁体   English

iOS:如何使用NSMutableArray

[英]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. 注意:从内存管理的角度来看,这等效于retainalloc/init :使用后应释放arrayCopy

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM