Tengo una aplicación basada en documentos y he subclasificado NSDocument
y proporcioné los métodos necesarios, pero mi documento necesita una limpieza exhaustiva (necesita ejecutar tareas externas, etc.). ¿Dónde está el mejor lugar para poner esto? He probado un par de métodos diferentes, tales como:¿Dónde coloca el código de limpieza para las subclases de NSDocument?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
Si lo pongo en dealloc
, a veces es llamado y otras veces no (al presionar Comando + Q parece pasar por alto la desasignación de mi documento), pero es obligatorio llamar a este código sin fai señuelo (a menos que el programa termine inesperadamente).
No creo que esto sea del todo correcto: solo debe realizar la limpieza en el shouldCloseSelector porque solo se llama a shouldCloseSelector si el documento está listo para cerrarse (por ejemplo, se guardó correctamente). Este método canClose que se llama no indica que el documento realmente se cerrará (por ejemplo, el guardado podría fallar). – Joel