在类中实现 NSCopying 的此方法以启用复制时,区域参数使用什么? 如果我设置一个新对象,我不需要用 allocWithZone 来分配它,因为 alloc 就足够了......我很困惑......
最佳答案
这是过去的遗留物,我们有多个“区域”来分配。如今,所有应用程序只有一个区域来进行所有分配,但 NSZone
类仍然存在,并且编写了太多代码来依赖 +allocWithZone:
作为进行更改的基本分配方法。
简而言之,您可以完全忽略 NSZone
结构,而关心 +allocWithZone:
的唯一原因是您是否需要重写它。与 -copyWithZone:
类似,您可以忽略该区域。如果您愿意,可以调用 +allocWithZone:
传入同一区域,但这不会产生任何区别。
关于iPhone : (id)copyWithZone:(NSZone *)zone : what is "zone" for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631526/