我正在阅读由 Chung 撰写的 "Pro. Objective-C Design Patterns for iOS",发现以下内容:
_sharedSinglton = [[super allocWithZone: NULL] init];
我查阅了苹果的文档NSCopying,但我无法真正理解 ZONE 的含义。
NSZone
现在已经过时,但是在NEXTSTEP时代,NSZone
试图将“malloc zones”的概念引入Cocoa。以下是一些文档,描述了启用时它的工作原理:http://www.cocoadev.com/index.pl?NSZone
-allocWithZone:
的原因是因为他们的单例模式已经覆盖了-alloc
,而他们想要一个简单的方法来避免覆盖-alloc
。-allocWithZone:
可以避免覆盖(因为他们没有覆盖该方法),但与普通的-alloc
相比并不会改变任何行为,因为分区已经过时并且没有任何作用。基本上,这是一个巧妙的技巧,以轻松地避免他们自己覆盖-alloc
,而分区部分则是无关紧要的。 - StilesCrisisZone
视为没有自动释放功能的autorelease
池吗? - Prashant Rane