場合は、親クラスとして記述することがNSObjectのではないでしょうか?
-
21-08-2019 - |
質問
例
@interface Fraction: NSObject {
...
ときに使用されNSObject
ないでしょうし、他のすべてのクラスのための究極の親クラスをNSObject
される?
使用されるすべての間違った用語で私を修正すること自由に感じてくださいます。
解決
私はNSViewのサブクラスを書いていた場合、私は書きます。
@interface Fraction: NSView {...
私のクラスはNSViewの継承されているため。 Objective-Cのクラスでは、単一の親クラスから継承します。あなたが(その親クラス、NSResponderまで)のNSViewから連鎖をあなたの方法を仕事として、あなたはそれが最終的にNSObjectのから継承することを見つけるだろう。
私はあなたの質問の後半部分についてはよく分かりません。私はAppleのCocoaのフレームワーク内のすべてのクラスは、最終的にNSObjectの継承と思うが、その上で私を引用しないでください。理由は、他のルートオブジェクトは存在しなかった理由のObjective-C、(それ以外のObjective-CのみのAppleシステム上で使用される)には、ありません。しかし、ココアでは、NSObjectのはrootです。
他のヒント
任意のココアアプリでは、あなたは5ルートクラスあります:NSObjectの、オブジェクト、NSProxy、NSMessageBuilder、とののNSZombie の
あなたのアプリのほとんどの普通のオブジェクトはNSObjectのから降りされます。オブジェクトは、Objective-Cの初期の頃から、元のルートクラスで、次にエンタープライズフレームワークをオブジェクト開発していたときには、NSObjectのに取って代わられました。
NSMessageBuilderは、メッセージ転送のためのランタイムで使用されます。 NSProxyは、他のプロセスで、あるいは他のホスト上のオブジェクトに送信するメッセージをマーシャリングに対処するための分散オブジェクトの実装で使用されています。 のNSZombie のメモリリークをデバッグするために使われているクラスです。
Cocoaは2つのルートのクラスがあります。NSObjectのとNSProxyを
NSObjectのは、ほとんどすべてのCocoaオブジェクトのルートクラスです。
NSProxyは、他のオブジェクトのか、まだ存在しており、NSDistantObjectなどのクラスのルートクラスでないオブジェクトのスタンドインとして動作するオブジェクトのためのAPIを定義する抽象スーパークラスです。
両方のクラスは、NSObjectのプロトコルを実装します。
ルートクラスを持っていないあなた自身のObjective Cのクラスを記述することも可能ですが、あなたはそれを行うありませおそらくだろう、とあなたも実装されない限り、あなたは何の多くをココアでそれを使用することはできませんでもNSObjectのプロトコル、およびそれが怪しげな使用であろう。