2012-05-05 12 views
11

मैं dealloc के भीतर इस विधि कॉल के साथ एक वर्ग है:हम एआरसी में कनवर्ट करते समय -डालोक में कोड डालते हैं?

- (void)dealloc { 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [super dealloc]; 
} 

कहाँ मैं अपने आप को अधिसूचना केंद्र से हटा एक बार मैं कक्षा चाप में बदलने का? क्या इसे देखने के भीतर जाना चाहिए? अधिसूचना का उपयोग मॉडल व्यू कंट्रोलर से आने वाली घटनाओं को सुनने के लिए किया जाता है, इसलिए मैं इस कोड को दृश्य में नहीं डाल सकता हूं।

उत्तर

19

एआरसी में dealloc रहता है, यह सिर्फ है कि आप [super dealloc] किसी भी अब नहीं बुला किया जाना चाहिए है: संकलक आप के लिए कोड सम्मिलित करता है। और निश्चित रूप से release पर सभी कॉल dealloc (या कहीं और) में नहीं बनाई जा सकती हैं।

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    // [super dealloc]; <<== Compiler inserts this for you 
}