私のクラスはNSCopying
次のように実装します。
@implementation MyClass
- (id) copyWithZone: (NSZone *) zone {
MyClass *copy = [[MyClass allocWithZone: zone] init];
// Copy instance variables
return copy;
}
@end
これは、コピーが必要なメモリゾーンに割り当てられることを意味します。オブジェクトにコピーする必要のあるインスタンス変数(可変配列など)も含まれている場合は、単に呼び出すのではなく、copyWithZone:
メッセージを使用して渡す必要がありますか?zone
copy
さらに、オブジェクトをコピーする代わりに直接インスタンス化するインスタンス変数がある場合、allocWithZone:
クラスメソッドを使用してそれらを割り当てる必要がありますか?