очистка Vars в финализации и Deloc - PullRequest
1 голос
/ 15 декабря 2011

Есть ли метод, который вызывается перед финализацией, который я могу использовать для очистки, как я обычно использую Deloc, для чего?установка public, reserved, instance vars в nil (это освободит и установит указатель в nil).

Apple говорит, что вы не должны делать это в методе finalize, если вы включаете GC.1008 * Допустим, я делаю подкласс NSView с сохраненным свойством NSTimer.Чтобы удостовериться, что таймер недействителен, мне нужно вызвать на нем invalidate до / во время освобождения подкласса.С отключенным GC я просто говорю [self.time invalidate] и устанавливаю его равным nil в методе dealloc.

Однако при включенном GC кажется, что единственный способ сделать это - создать IBOulet для подкласса представления.Затем, прежде чем удалить вид, мне нужно сделать недействительным таймер.

Я бы предпочел не создавать выходы для всех моих пользовательских представлений или элементов управления ... Есть ли лучший или более автоматический способ сделать это?

1 Ответ

1 голос
/ 23 декабря 2011

Неа. Если у вас есть пользовательский элемент управления, и у вас есть переменные, которые сохраняют что-то. Вам нужно создать выход для этого элемента управления и очистить сохраненные переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...