Objective-C について、私が混乱する点がいくつかあります。
まず、objective-c ガイドでは、各クラスがそのサブクラスの init メソッドを呼び出す必要があることは非常に明確です。init
NSObject から直接継承するクラスがそのメソッドを呼び出す必要があるかどうかについては、少し不明です。これは事実ですか?もしそうなら、それはなぜですか?
次に、NSObject に関するセクションに、次の警告があります。
他のクラスから特別な動作を継承する必要のないクラスは、それでも NSObject クラスのサブクラスにする必要があります。クラスのインスタンスには、実行時に少なくとも Objective-C オブジェクトのように動作する機能が必要です。この機能を NSObject クラスから継承することは、新しいクラス定義で再発明するよりもはるかに簡単で信頼性が高くなります。
これは、すべてのオブジェクトが NSObject から明示的に継承するように指定する必要があるということですか? それとも、すべてのクラスが NSObject のサブタイプである Java/Python/C# のようなものですか? そうでない場合、NSObject 以外のルート クラスを作成する理由はありますか?