首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何深度复制多维NSMutableArray及其内容?

如何深度复制多维NSMutableArray及其内容?
EN

Stack Overflow用户
提问于 2012-06-10 18:41:49
回答 2查看 501关注 0票数 1

我目前有一个三维NSMutableArray,我需要进行深度复制。然而,下面的代码似乎导致它和它的内容变得不可变,因为当我试图从它中删除任何对象时,它会导致NSInvalidArgumentException。

代码语言:javascript
运行
复制
NSMutableArray* copy = [[[NSMutableArray alloc] initWithArray:input copyItems:YES] autorelease];

如何才能在不导致数组不可变的情况下对数组进行深度复制?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-10 18:50:58

从列表中,

不可变类的复制实现通常返回相同的对象-因为它是不可变的,所以没有必要有一个“真正的”副本。但是你不需要担心这个。

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

因此,在添加input数组之前,请确保将输入数组转换为可变副本,然后调用该方法。

代码:

代码语言:javascript
运行
复制
NSMutableArray* mutableInput = [input mutableCopy];
NSMutableArray* copy = [[[NSMutableArray alloc] initWithArray:mutableInput copyItems:YES]autorelease];
票数 1
EN

Stack Overflow用户

发布于 2012-06-10 22:38:34

使用NSCoding

在接口文件@ .h中,类名: NSObject

在.m文件中

  • (id)copyWithZone:(NSZone *)区域{ }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10968021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档