Cocoa - Создание объектов
При инициализации объекта с помощью init... необходимо проверить, что родительский класс вернул правильный объект.
У родителя могут быть в свойствах объекты, которые нужно инициализировать.
При инициализации объектов ссылками на др. объекты увеличивать счетчик ссылок.
Если вместо созданного объекта нужно вернуть ранее существовавший, то у созданного нужно уменьшить счетчик ссылок.
При наследовании нужно следить, чтобы был init в производном классе, иначе вызовется только init родительского класса.
designated initializer отправляет super сообщение, вызывающее у того designated initializer.
designated initializer обычно имеет больше всех аргументов.
Остальные инициализаторы вызывают друг друга или designated initializer.
Вызовы designated инициализаторов образуют цепочку в иерархии классов.
Наследуемые инициализаторы должны быть переопределены в производном классе так, чтобы вызывался designated initializer производного класса.
В dealloc объекта сначала освобождаются агрегированные объекты, а затем посылается dealloc вверх по иерархии.
Основные правила:
- Если ты владеешь объектом, то ты ответственен за его освобождение (release).
- Никогда не релизь объект, которым не владеешь.
Счетчик числа ссылок показывает число владельцев объекта.
Комментариев нет:
Отправить комментарий