I have a document-based application and I have sub-classed NSDocument and provided the required methods, but my document needs some extensive clean-up (needs to run external tasks etc). Where is the best place to put this? I have tried a few different methods such as:
closeclose:canCloseDocumentWithDelegate:shouldCloseSelector:contextInfodealloc
If I put it in dealloc, sometimes it gets called and other times it does not (pressing Command+Q seems to bypass my document’s deallocation), but it is mandatory that this code gets called without failure (unless program unexpectedly terminates).
Have each document add itself as an observer in the local notification center for
NSApplicationWillTerminateNotification. In its notification method, call its clean-up method (which you should also call fromdeallocorclose).