Mac OS X 10.8 の Objective-C ランタイム ライブラリ ソース コードのバージョンを見ると、 NSObject.mmファイルがあることに気付きました。その名前が示すように、NSObject
クラスの実装に加えて、組み込みの自動解放プールと保持カウントの実装があります。
ただし、Mountain Lion のバージョンより前の ObjC ランタイム ライブラリのバージョンは、NSObject
クラスを実装していませんでした (たとえば、 Mac OS X 10.7 の Objective-C ランタイム ライブラリ ソース コードNSObject.mm
で確認できるように、ファイルがありませんでした)。 )。
これは本当に、そのNSObject
クラスが Foundation ライブラリ コンポーネントではなく、Objective-C ランタイム ライブラリの一部になったことを意味するのでしょうか? はいの場合、なぜですか? -framework Foundation
をサブクラス化するときに、Foundation ライブラリ全体 (を使用) に対する 1 つのリンクを避けるためNSObject
ですか?