среда, 22 апреля 2009 г.

20.04.09. Создание объектов.

Cocoa - Создание объектов 


При инициализации объекта с помощью init... необходимо проверить, что родительский класс вернул правильный объект. 


У родителя могут быть в свойствах объекты, которые нужно инициализировать.


При инициализации объектов ссылками на др. объекты увеличивать счетчик ссылок.

 
Если вместо созданного объекта нужно вернуть ранее существовавший, то у созданного нужно уменьшить счетчик ссылок. 


При наследовании нужно следить, чтобы был init в производном классе, иначе вызовется только init родительского класса.  


designated initializer отправляет super сообщение, вызывающее у того designated initializer. 


designated initializer обычно имеет больше всех аргументов. 


Остальные инициализаторы вызывают друг друга или designated initializer. 


Вызовы designated инициализаторов образуют цепочку в иерархии классов. 


Наследуемые инициализаторы должны быть переопределены в производном классе так, чтобы вызывался designated initializer производного класса. 


В dealloc объекта сначала освобождаются агрегированные объекты, а затем посылается dealloc вверх по иерархии. 

Основные правила: 

  • Если ты владеешь объектом, то ты ответственен за его освобождение (release).

  • Никогда не релизь объект, которым не владеешь.

Счетчик числа ссылок показывает число владельцев объекта.

Комментариев нет:

Отправить комментарий