gpt4 book ai didi

ios - 具有 NSMutableArray 成员的自定义对象的 NSMutableArray 的深拷贝

转载 作者:行者123 更新时间:2023-12-02 03:02:13 29 4
gpt4 key购买 nike

我正在尝试制作 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 方法的异常。

我该怎么做?谢谢!

最佳答案

为了深拷贝数组的内容

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

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

让您的 CustomParent 类符合 NSCopying协议(protocol),你就完成了。

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

关于ios - 具有 NSMutableArray 成员的自定义对象的 NSMutableArray 的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com