2

我正在尝试制作NSMutableArray其对象是类似于此的自定义类的实例的深层副本:

@interface CustomParent : NSObject
@property NSInteger Id;
@property (strong, nonatomic) NSString *IdStr;
@property (weak, nonatomic) NSDate *Date; 
@property (strong, nonatomic) NSMutableArray *CustomChildren;
@property (strong, nonatomic) CustomType *Type;
@property float Value;
@end

我知道有很多关于复制对象的帖子,但是我没有找到获取具有集合成员或属性的对象的完整副本的示例。引发涉及该方法NSMutableArray *dstArray = [[NSMutableArray alloc] initWithArray:srcArray copyItems:YES];的异常。copyWithZone

我怎样才能做到这一点?谢谢!

4

1 回答 1

13

为了深拷贝数组的内容

[[NSMutableArray alloc] initWithArray:srcArray copyItems:YES];

将发送copyWithZone:到集合内的每个对象。如果他们不响应此选择器,您将崩溃。

让你的CustomParent班级遵守NSCopying协议,你就完成了。

这里有一些关于如何实现它的额外信息:Implementing NSCopying

于 2013-06-27T13:35:49.063 回答