在copyWithZone:中,"zone"的意思是什么?

6

我正在阅读由 Chung 撰写的 "Pro. Objective-C Design Patterns for iOS",发现以下内容:

_sharedSinglton = [[super allocWithZone: NULL] init];

我查阅了苹果的文档NSCopying,但我无法真正理解 ZONE 的含义。

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
7

NSZone现在已经过时,但是在NEXTSTEP时代,NSZone试图将“malloc zones”的概念引入Cocoa。以下是一些文档,描述了启用时它的工作原理:http://www.cocoadev.com/index.pl?NSZone


那么,将“zone”指定为“NULL”和“Default”有什么不同? - Prashant Rane
3
我刚才在谷歌上查了一下这本书和引用。我认为他们在这种情况下使用-allocWithZone:的原因是因为他们的单例模式已经覆盖了-alloc,而他们想要一个简单的方法来避免覆盖-alloc-allocWithZone:可以避免覆盖(因为他们没有覆盖该方法),但与普通的-alloc相比并不会改变任何行为,因为分区已经过时并且没有任何作用。基本上,这是一个巧妙的技巧,以轻松地避免他们自己覆盖-alloc,而分区部分则是无关紧要的。 - StilesCrisis
感谢 @StilesCrisis 的解释;那么,我们可以将 Zone 视为没有自动释放功能的 autorelease 池吗? - Prashant Rane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,