16

在类中实现这种 NSCopying 方法以启用复制时,区域参数的用途是什么?如果我设置一个新对象,我不需要用 allocWithZone 分配它,因为一个 alloc 就足够了......我很困惑......

4

2 回答 2

25

这是过去的遗留物,我们有多个“区域”要分配。如今,所有应用程序只有一个区域,所有分配都在其中进行,但NSZone该类仍然存在,并且编写了太多代码依赖+allocWithZone:是进行更改的基本分配方法。

简而言之,您可以完全忽略该NSZone结构,唯一需要关心的原因+allocWithZone:是您是否需要覆盖它。与 类似-copyWithZone:,您可以忽略该区域。如果你愿意,你可以+allocWithZone:在同一个区域调用传球,但这不会有任何区别。

于 2011-01-08T00:34:26.463 回答
1

查看NSCopying 协议参考,特别是copyWithZone:

于 2011-01-08T00:33:19.077 回答