Mam aplikację opartą na dokumentach i mam podkategorię NSDocument
i pod warunkiem wymaganych metod, ale mój dokument wymaga rozległego czyszczenia (wymaga uruchomienia zadań zewnętrznych itp.). Gdzie jest najlepsze miejsce na umieszczenie tego? Próbowałem kilka różnych metod, takich jak:Gdzie umieszczasz kod oczyszczania dla pod-klas NSDocument?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
Jeśli mogę umieścić go w dealloc
, czasami robi zwanych a innym razem nie (naciśnięcie klawisza Command + Q omija dezalokację mojego dokumentu), ale jest obowiązkowe, aby ten kod był wywoływany bez użycia fai przynęta (chyba że program niespodziewanie się zakończy).
Nie sądzę, że jest to całkowicie poprawne: należy wykonać czyszczenie tylko w obiekcie shouldCloseSelector, ponieważ komenda shouldCloseSelector jest wywoływana tylko wtedy, gdy dokument jest gotowy do zamknięcia (na przykład pomyślnie zapisany). Ta metoda pobrania metody canClose nie oznacza, że dokument zostanie faktycznie zamknięty (np. Zapis może się nie powieść). – Joel