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

Oli*_*ver 16 iphone copywithzone nscopying

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

Lil*_*ard 25

它是过去的遗物,我们有多个"区域"可供分配.这些天,所有应用程序只有一个区域,所有分配都在这里,但是NSZone类仍然存在,而且编写的代码太多依赖于+allocWithZone:是进行变革的基本分配方法.

简而言之,您可以完整地忽略NSZone结构,唯一需要关注的+allocWithZone:是您是否需要覆盖它.与此类似-copyWithZone:,您可以忽略该区域.如果您愿意,可以+allocWithZone:在同一区域内打电话,但不会有任何区别.