0

私のクラスはNSCopying次のように実装します。

@implementation MyClass

- (id) copyWithZone: (NSZone *) zone {
    MyClass *copy = [[MyClass allocWithZone: zone] init];

    // Copy instance variables

    return copy;
}

@end

これは、コピーが必要なメモリゾーンに割り当てられることを意味します。オブジェクトにコピーする必要のあるインスタンス変数(可変配列など)も含まれている場合は、単に呼び出すのではなく、copyWithZone:メッセージを使用して渡す必要がありますか?zonecopy

さらに、オブジェクトをコピーする代わりに直接インスタンス化するインスタンス変数がある場合、allocWithZone:クラスメソッドを使用してそれらを割り当てる必要がありますか?

4

1 に答える 1

1

ゾーンは廃止されました-それとは特別なことは何もありません。ivarもコピーする場合は、それを無視して、copyを呼び出すだけで済みます。

于 2012-08-15T20:30:43.460 に答える