簡體   English   中英

如何將NSMutableArray復制到另一個數組?

[英]How to copy a NSMutableArray in to another array?

我試圖將一個數組復制到另一個數組,我的代碼如下

NSMutableArray firstArray = [[NSMutableArray alloc]init];
NSMutableArray secondArray = [[NSMutableArray alloc]init];
[firstArray addObject:@"1"];
[firstArray addObject:@"2"];
[firstArray addObject:@"3"];
[firstArray addObject:@"4"];
[firstArray addObject:@"5"];

// have tried following ways

// 1
secondArray=[firstArray copy];

// 2
[secondArray addObjectsFromArray:firstArray];

//3
secondArray = [[NSMutableArray alloc]initWithArray:firstArray];

它工作正常,但問題是,修改firstArray時它反映了它在secondArray中的更改,我不希望這樣。

請告訴您正確的方法

問題是,您創建了一個“淺”副本。 您想要的是“深層”副本:

NSArray *deepCopyArray=[[NSArray alloc] initWithArray:someArray copyItems:YES];

要么

NSArray* trueDeepCopyArray = [NSKeyedUnarchiver unarchiveObjectWithData:
      [NSKeyedArchiver archivedDataWithRootObject:oldArray]];

您可以在“ 復制 Mac開發人員資料集”中找到有關此內容的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM