클래스 B에 속성이 들어 있습니다. 클래스 B에는 "부모"클래스에 대한 약한 참조가 있습니다. 두 클래스 모두 NSCopying을 구현합니다. 올바르게 복사 된 부모를 가리 키도록 "부모"속성을 NSCopying합니다.
- :
나는 두 개의 분명한 선택을 참조 NSCopying가 클래스 B에서 구현하는 방법을 정확히 모르는 복사 된 클래스에
첫 번째 경우 B의 부모 속성은 원본 A를 가리 킵니다. 두 번째 경우의 부모 속성은 완전히 새로운 복사본입니다.
NSCopying 과정에서 상위 속성이 새로 만든 A 사본을 가리킬 수 있도록 클래스 B를 올바르게 복사하려면 어떻게해야합니까? 클래스 A의하지만 클래스 B 내에서 그렇게 할 수있는 방법이있다 :
-(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;
}
내가 가장 쉬운 방법은 copyWithZone에서 부모 속성을 업데이트 할 것이라고 생각?