iPhone : (id)copyWithZone:(NSZone *)zone : what is "zone" for?

标签 iphone nscopying copywithzone

在类中实现 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/

相关文章:

iphone - UIView 作为字典键?

ios - [MyClassName copyWithZone :]: unrecognized selector sent to instance?

ios - 发送到实例的 UITableViewCell copyWithZone 无法识别的选择器

iphone - Made For iPhone 程序细节

iphone - 我的应用程序中的水平分页

iphone - 动画时设置属性两次

objective-c - 为什么 iOS 类不采用 copyWithZone 协议(protocol)来鼓励 active mem mgt?

iphone - 使用 **自定义样式** 谷歌地图的 iOS native 应用程序

iphone - 在类中启用 NSCopying 协议(protocol)

swift - NSCopy GKGameModel 无法正确复制玩家对象