質問

現在「Objective-Cのプログラミング概要」というAppleが作ってるドキュメントを読んでいます。
その中で、サブクラス作成方法において複合オブジェクトを用いたサブクラス作成例(P17〜)のinitメソッドに出てくる「zone」がどこから出てきたのか理解できずに困っています。
「zone」はどこから出てきたのでしょか?

不明点のサンプルコード抜粋

- init {
  self = [super init];
  if (self) {
      embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
  }
  return self;}

サンプルコード抜粋元資料

https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf


推測

わからないなりに推測してみました。
NSMutableArrayはNSArrayを継承したサブクラス、更にNSArrayはNSObjectを継承したサブクラスであるため、[self zone]でNSObjectのzoneメソッドにメッセージを送れる。
また、allocWithZoneメソッドもNSObjectを継承しているため、メッセージをおくれる。
なお、資料が古いため過去requiredだったzoneがそのまま使われており、現在は使えない状態である。

推測の根拠

https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/index.html#//apple_ref/occ/intfm/NSObject/zone

よろしくおねがいします!