मेरे पास एक दस्तावेज़-आधारित एप्लिकेशन है और मेरे पास उप-वर्गीकृत NSDocument
है और आवश्यक विधियां प्रदान की गई हैं, लेकिन मेरे दस्तावेज़ को कुछ व्यापक सफाई-अप (बाहरी कार्यों को चलाने की आवश्यकता है) की आवश्यकता है। इसे रखने के लिए सबसे अच्छी जगह कहां है? मैं इस तरह के रूप में कुछ अलग अलग तरीकों की कोशिश की है:आप NSDocument उप-वर्गों के लिए क्लीनअप कोड कहां डालते हैं?
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
अगर मैं dealloc
में रख, कभी कभी यह कहा जाता है और हो जाता है दूसरी बार ऐसा ऐसा नहीं करता है (कमांड + क्यू दबाकर मेरे दस्तावेज़ के डेलोकेशन को बाईपास करना प्रतीत होता है), लेकिन यह अनिवार्य है कि इस कोड को बिना फी के बुलाया जाता है लालसा (जब तक कि प्रोग्राम अप्रत्याशित रूप से समाप्त नहीं हो जाता)।
मुझे नहीं लगता कि यह पूरी तरह से सही है: आपको केवल चाहिएCloseSelector में क्लीनअप करना चाहिए क्योंकि दस्तावेज़ बंद होने के लिए तैयार होने पर केवल क्लक्लोज़ सिलेक्टर को कॉल किया जाता है (उदा। सफलतापूर्वक सहेजा गया)। यह कॉलक्लोस विधि बुलाया जा रहा है यह इंगित नहीं करता है कि दस्तावेज़ वास्तव में बंद हो जाएगा (उदा। सहेजने में असफल हो सकता है)। – Joel