Где хранится количество сохранений для NSObjects в Objective C?

Мне любопытно, как внутри работает сохранение/освобождение. На первый взгляд кажется, что есть целое число, связанное с каждым экземпляром NSObject, которое увеличивается и уменьшается при вызове -retainи -releaseсоответственно.

Но, взглянув на NSObject, единственная переменная экземпляра, которая у него есть, — это переменная isaдля определения типа его класса.

Так где же хранятся счетчики сохранения для отдельных объектов? Не то, чтобы я собирался с этим возиться, а просто для собственного назидания.

Хранится ли он с NSObject, но скрыт в некоторых деталях реализации Objective C? Если это так, то это кажется мне плохим дизайном. Один должен иметь возможность создавать свой собственный корневой класс и управлять своим собственным подсчетом удержания/освобождения аналогичным образом (не то, чтобы это была хорошая идея--нужно иметь очень веская причина не использоватьNSObject).

9
задан Ed Marty 11 April 2012 в 16:01
поделиться