私の質問は、現在のバージョンの Foundation (または、Objective-C ランタイム ライブラリが存在するように見えるため) がNSObject派生オブジェクトの保持カウントをどのように実装しているかということです。NSObject.mmでわかるようにretain count、NSObjectのインターフェイス本体で呼び出される ivar はありません。代わりに、各オブジェクトの参照カウンターを含む一種のテーブルまたはマップがあるようです。しかし、保持カウントが実際にマップで行われる場合、この種の実装では操作が高価にretainなりreleaseすぎません (この場合、ミューテックスをロックおよびロック解除する必要があるため、マップを検索して正しいオブジェクトを見つけます。マルチスレッド環境では、一度に 1 つのオブジェクトしか保持/解放できないこと)。
NSObject.mm (によって呼び出される関数のよう_objc_rootAllocWithZoneです)でもobjc-runtime-new.mm (それによって後で呼び出されます)。[NSObject alloc]_class_createInstanceFromZone_objc_rootAllocWithZone