У меня есть приложение на основе документов, и я получил подклассы NSDocument
и предоставил необходимые методы, но мой документ нуждается в некоторой обширной очистке (необходимо выполнить внешние задачи и т. Д.). Где лучше всего это поставить? Я попробовал несколько различных методов, таких как:Где вы размещаете код очистки для подкласс классов NSDocument?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
Если я положил его в dealloc
, иногда она вызывается и другие времена это (нажатие Command + Q похоже на обход моего документа), но обязательно, чтобы этот код вызывался без fai приманка (если программа неожиданно не прекращается).
Я не думаю, что это совершенно правильно: вы должны делать очистку только в ifCloseSelector, потому что shouldCloseSelector только вызывается, если документ готов к закрытию (например, успешно сохранен). Этот метод canClose, который вызывается, не указывает на то, что документ действительно будет закрыт (например, сбой может завершиться сбой). – Joel