the Mac OS X 10.8's version of the Objective-C runtime library source codeを見ると、NSObject.mmというファイルがあることに気付きました。その名前が示唆しているように、NSObject
クラスの実装と組み込みの自動解放プールと保持カウントの実装があります。NSObjectクラスは、(Foundationコンポーネントではなく)Objective-Cランタイムライブラリの一部ですか?
しかし、前にマウンテンライオンの1ににObjCランタイムライブラリのバージョンでは、(あなたがたとえば、Mac OS X 10.7's Objective-C runtime library source codeで見ることができるように、彼らは、NSObject.mm
ファイルを持っていなかった)NSObject
クラスを実装していませんでした。
これは実際にはNSObject
クラスがFoundationライブラリコンポーネントではなくObjective-Cランタイムライブラリの一部であることを意味していますか?はいの場合、なぜですか? NSObject
をサブクラス化するときにFoundationライブラリ全体(-framework Foundation
)にリンクするのを避けるのはどうですか?
NSObjectが実装されている場所は実装の詳細です。 NSObjectはlibobjcと一緒にスタックの下に移動し、システムの多くがObjective Cを利用できるようになりました。 – bbum
'NSObject'は(公式にもそうでなくても)もう財団の一部とは思われません。 [NSObject'のAppleの文書](https://developer.apple.com/documentation/objectivec/nsobject?language=objc)は、これを「Objective-C」フレームワークからのものとしてリストアップし、Foundationフレームワークについて言及していません。 – Cornstalks