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