Цель C: создание подклассов, переопределение dealloc - PullRequest
1 голос
/ 31 марта 2011

Я создаю подкласс пользовательского UITableViewCell.Суперкласс имеет некоторые свойства, которые он высвобождает в методе dealloc.Я добавил еще одно свойство в свой подкласс, поэтому я решил переопределить метод dealloc и освободить мое новое свойство.

Мой вопрос в том, что, поскольку я переопределил метод dealloc, не будут ли освобождены свойства, которые были освобождены в методе dealloc суперкласса (Я ЕСМЬ вызываю [super dealloc])?Нужно ли специально выпускать их в методе MY dealloc?

Ответы [ 3 ]

7 голосов
/ 31 марта 2011

Если вы звоните [super dealloc], реализация суперкласса -dealloc все равно будет запущена.Суперкласс должен отвечать за освобождение своих собственных свойств.Так что нет, вам не нужно освобождать свойства суперкласса.Фактически, это может привести к сбою приложения.

2 голосов
/ 31 марта 2011

Важное замечание: Вызовите [super dealloc] последним в вашем методе -dealloc, после того, как вы создали свои собственные ивары и сделали что-то еще, что вам нужно сделать в -dealloc. Когда этот метод вернется, от вашего объекта ничего не останется.

2 голосов
/ 31 марта 2011

Если вы звоните [super dealloc], у вас все хорошо.Этот метод не будет знать, был ли он вызван подклассом или непосредственно средой выполнения, и он будет выполнять свою обычную работу и, как всегда, заботится о своих собственных свойствах.

...