両方のクラスの変数の値を変更する機能を備えたコピーが必要なクラスがあります。簡単に言えば、これらのクラスは常に相互のクローンであり続ける必要があります。ドキュメントについての私の理解は、これも可変であると宣言されているクラスの浅いコピーを使用してこれを行うことができるということです。浅くコピーすることにより、変数のポインター値が複製され、両方のクラスで完全に一致するようになります。したがって、元の変数を更新すると、コピーも同時に更新されます。これは正しいですか?
以下に示すように、コピーしたいクラスで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プロトコルも実装しました。
どんな助けでも素晴らしいでしょう。