0

我的类实现NSCopying如下:

@implementation MyClass

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

    // Copy instance variables

    return copy;
}

@end

这意味着副本被分配在所需的内存区域中。如果对象包含需要复制的实例变量,例如可变数组,我应该使用它们的copyWithZone:消息并传递zone,而不是仅仅调用copy

此外,如果有我想直接实例化而不是复制对象的实例变量,我是否必须使用allocWithZone:类方法来分配它们?

4

1 回答 1

1

Zone 已过时 - 与它没有什么特别的关系。如果你也复制你的 ivars,你可以放心地忽略它,只需调用它们的复制。

于 2012-08-15T20:30:43.460 回答