0
我的类实现NSCopying
这样的:NSCopying:“区”的使用
@implementation MyClass
- (id) copyWithZone: (NSZone *) zone {
MyClass *copy = [[MyClass allocWithZone: zone] init];
// Copy instance variables
return copy;
}
@end
这意味着该副本所需的内存区域的分配。如果对象包含需要复制的实例变量,例如,可变阵列,我应该使用它们的copyWithZone:
消息并通过zone
,而不是仅仅调用copy
?
此外,如果有实例变量我想直接实例化而不是复制一个对象,我将不得不通过使用allocWithZone:
类方法来分配这些变量吗?
谢谢,这似乎也是常见的看法。是否有任何官方文件来支持? – waldrumpus 2012-08-17 11:41:17
@waldrumpus不客气。我相信苹果公司的文档提到它(但是很久以前我和NSCopying搞混了,所以它可能不再存在)。 – 2012-08-17 11:44:50