gpt4 book ai didi

objective-c - 正确 NSCopying "parent"属性,使其指向其已复制的父级

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:38 24 4
gpt4 key购买 nike

我有一个包含 B 类属性的 A 类。B 类对其“父”类 A 有一个弱引用。两个类都实现了 NSCopying。

我不知道 NSCopying 到底应该如何在类 B 中实现。我看到了两个明显的选择:

  1. 将父属性分配给复制的类
  2. 复制父属性并将其分配给复制的类

在第一种情况下,B 中的父属性将指向原始 A。在第二种情况下,父属性是一个全新的副本。

如何在 NSCopying 过程中正确复制类 B,使其父属性指向 A 的新创建副本?

-(id) copyWithZone:(NSZone*)zone
{
MyClassB* copy = [[[self class] allocWithZone:zone] init];
copy->_parent = _parent; // <<-- should reference the new copy of A, but how?
return copy;
}

我想最简单的方法是从 A 类中的 copyWithZone: 更新父属性。但是我可以从 B 类中这样做吗?

最佳答案

我记得这在解压时一直是个问题,所以解决这个问题的唯一方法是在我扩展的 Apple 类的类别中调整 copyWithZone: 方法,然后在收到副本后我去通过 B 类对象列表并更新它们的父引用。

关于objective-c - 正确 NSCopying "parent"属性,使其指向其已复制的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089939/

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