我有一个需要复制的类,它能够更改两个类上变量的值。简单地说,这些类需要始终保持彼此的克隆。我对文档的理解是,我可以使用也被声明为可变的 Class 的浅表副本来做到这一点。通过浅拷贝变量的指针值将被克隆,使其在两个类中完全匹配。因此,当我更新原始变量时,副本将同时更新。这是正确的吗?
正如您在下面看到的,我在要复制的类中使用了 mutableCopyWithZone。我已经尝试了 NSCopyObject 和 allocWithZone 方法来让它工作。尽管我能够复制该类并且它按预期显示,但在更新变量时它不会更改复制的类中的值。
- (id)mutableCopyWithZone:(NSZone *)zone {
//ReviewViewer *copy = NSCopyObject(self, 0, zone);
ReviewViewer *copy = [[[self class] allocWithZone:zone] init];
copy->infoTextViews = [infoTextViews copy];
return copy;
}
infoTextViews 是一个声明为非原子的属性,保留在被复制的类的头文件中。我也相应地实现了 NSMutableCopying 协议。
任何帮助都会很棒。