Есть ли метод, который вызывается перед финализацией, и который я могу использовать для очистки, как обычно, для которой я использую Dealloc?
С отключенным GarbageCollection в методе Dealloc я выполняю очистку, например, устанавливаю общедоступные, сохраненные, экземплярные переменные на ноль (это освободит и установит указатель на ноль).
Apple говорит, что вы не должны делать это в методе finalize, если вы включаете GC.
Допустим, я создаю подкласс NSView с сохраненным свойством NSTimer. Чтобы убедиться, что таймер недействителен, мне нужно вызвать его недействительность до/во время освобождения подкласса. Когда GC выключен, я просто говорю [self.time invalidate] и устанавливаю его в nil в методе Dealloc.
Однако с включенным сборщиком мусора кажется, что единственный способ сделать это — создать IBOulet для подкласса представления. Затем, прежде чем я удалю представление, мне нужно сделать таймер недействительным.
Я бы предпочел не создавать выходы для всех моих пользовательских представлений или элементов управления... Есть ли лучший или более автоматический способ сделать это?