J'ai une application basée sur le document et j'ai sous-classé NSDocument
et fourni les méthodes requises, mais mon document a besoin d'un nettoyage approfondi (doit exécuter des tâches externes, etc.). Où est le meilleur endroit pour mettre ça? J'ai essayé quelques différentes méthodes telles que:Où mettez-vous le code de nettoyage pour les sous-classes NSDocument?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
Si je le mets dans dealloc
, parfois, il est appelé et d'autres fois il ne pas (en appuyant sur Commande + Q semble contourner le désallocation de mon document), mais il est obligatoire que ce code soit appelé sans fai leurre (sauf si le programme se termine de manière inattendue).
Je ne pense pas que ce soit entièrement correct: vous ne devez effectuer le nettoyage que dans le paramètre shouldCloseSelector, car le paramètre shouldCloseSelector n'est appelé que si le document est prêt à être fermé (par exemple enregistré avec succès). Cette méthode canClose appelée ne signifie pas que le document sera fermé (par exemple, l'enregistrement peut échouer). – Joel