iPhone:(id)copyWithZone:(NSZone *)区域:什么是“区域”?

时间:2011-01-08 00:24:38

标签: iphone nscopying copywithzone

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

2 个答案:

答案 0 :(得分:25)

这是过去的遗物,我们有多个“区域”可供分配。这些天,所有应用只有一个区域,所有分配都在这里,但NSZone类仍然存在且远编写太多代码依赖+allocWithZone:作为进行更改的基本分配方法。

简而言之,您可以完全忽略NSZone结构,关注+allocWithZone:的唯一理由是您需要覆盖它。与-copyWithZone:类似,您可以忽略该区域。如果您愿意,可以拨打+allocWithZone:在同一区域内通过,但不会有任何区别。

答案 1 :(得分:1)