Процесс загрузки пера немного (но не очень) сложен и отличается для платформ OSX и iPhone. Вы можете прочитать об этом в разделе жизненного цикла объекта Nib в Руководстве по программированию ресурсов. В таблице 1-1 вы найдете это:
Объекты в файле пера созданы
со счетом сохранения 1, а затем
autoreleased. Как это восстанавливает
иерархия объектов, однако, UIKit
восстанавливает связи между
объекты, использующие setValue: forKey:
метод, который использует доступные
метод установки или сохраняет объект
по умолчанию, если нет метода установки
доступно
Так что получается, что ячейка создается с счетом сохранения 1, а затем, когда она устанавливается с помощью синтезированного сеттера, она увеличивается до 2. Когда вы устанавливаете свойство на nil
, счет сохранения уменьшается до 1, и ячейка возвращается в табличное представление. Табличное представление добавляет его в свою иерархию представлений и тем самым сохраняет его (и, возможно, сохраняет его и в других частях своей логики). После всего этого пул autorelease
сливается.
Я могу только предположить, что syntesized
собственность автоматически выпускает старый
значение вместо выпуска, это
случай
Нет, синтезированные сеттеры немедленно освобождают объект. (Хотя некоторые каркасные классы могут удерживать объект немного дольше, если это представление, например, необходимо анимировать.)