簡體   English   中英

您如何深度復制多維NSMutableArray及其內容?

[英]How do you deep copy a multidimensional NSMutableArray and its contents?

我目前有一個3D NSMutableArray,需要深度復制。 但是,以下代碼似乎導致其及其內容變得不可變,因為當我嘗試從中刪除任何對象時,它會導致NSInvalidArgumentException。

NSMutableArray* copy = [[[NSMutableArray alloc] initWithArray:input copyItems:YES] autorelease];

如何在不使數組變成不變的情況下深度復制數組?

從清單中

不可變類的復制實現通常返回相同的對象-因為它是不可變的,因此不需要“真實”副本。 但是您不必為此擔心。

以上來自http://lists.apple.com/archives/cocoa-dev/2008/May/msg00172.html

因此,請確保在添加input數組之前,將該輸入數組轉換為可變副本,然后調用該方法。

碼:

NSMutableArray* mutableInput = [input mutableCopy];
NSMutableArray* copy = [[[NSMutableArray alloc] initWithArray:mutableInput copyItems:YES]autorelease];

使用NSCoding

在.h文件中@interface類名:NSObject

在.m文件中

  • (id)copyWithZone:(NSZone *)zone {}

暫無
暫無

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

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