自定义类的NSMutableArray复制

Ale*_*key 2 copy objective-c deep-copy nsmutablearray nsarray

我有一个NSMutableArray自定义对象(基于NSObject),我想复制到一个新的数组.但我希望它是一个深刻的副本.

我该怎么做呢?我是否需要在自定义对象中实现NSCopying协议?

谢谢

rma*_*ddy 5

是的,您需要指明您的自定义类符合NSCopying协议,然后您实现该copyWithZone:方法.这允许您的类被复制.在您的实现中,copyWithZone:您需要确定有多少内部也需要深度复制.

现在,如果您对数组进行深层复制,则新数组将包含对象的复制版本,而不仅仅是对原始文件的引用.

请注意,数组的常规副本不会执行深层复制.要制作深层副本,您需要以下内容:

NSArray *deepCopyArray=[[NSArray alloc] initWithArray:someArray copyItems:YES];
Run Code Online (Sandbox Code Playgroud)