質問: わからないなりに推測してみました。 NSMutableArrayはNSArrayを継承したサブクラス、更にNSArrayはNSObjectを継承したサブクラスであるため、`[self zone]`でNSObjectの`zone`メソッドにメッセージを送れる。 また、`allocWithZone`メソッドもNSObjectを継承しているため、メッセージをおくれる。 なお、資料が古いため過去requiredだった`zone`がそのまま使われており、現在は使えない状態である。 推測の根拠 ----- よろしくおねがいします!
回答: 推測されている通り、`zone`は`NSObject`のメソッドです。`NSArray`や`NSMutableArray`などObjective-Cの(厳密にはCocoaの)クラスはほとんどが`NSObject`を継承しているので、`NSObject`が持つメソッドを利用できます。 サンプルにある`allocWithZone:`はメモリリソースが限られていた頃には有効でしたが、現在はシステムに任せるほうが効率がいいので非推奨になり、指定しても意味のない値になっています。