dealloc:
में viewDidLoad:
और removeObserver
में addObserver
का उपयोग किया गया था। कोड:NSNotificationCenter के साथ ऑब्सर्वर/निकालें ऑब्सर्वर जोड़ने का बेहतर तरीका क्या है?
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData)
name:AnyNotification
object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AnyNotification
object:nil];
}
लेकिन कुछ लेख के अनुसार ने कहा, यह viewDidDisappear:
में viewDidAppear:
और removeObserver
में addObserver
बेहतर है। कोड:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData)
name:AnyNotification
object:nil];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AnyNotification
object:nil];
}
तो, ऑब्सर्वर/निकालें ऑब्सर्वर जोड़ने का बेहतर तरीका क्या है?
संभव स्मृति चेतावनी के मामले में 'dealloc' में पर्यवेक्षक को निकालना अच्छा नहीं है। – Eimantas
दृश्य गायब हो गया था, बस सुनिश्चित करें कि आप प्रत्येक विशिष्ट अधिसूचना के लिए पर्यवेक्षक को हटा दें और हटाएं ऑब्सर्वर: स्वयं या अन्यथा जब दृश्य फिर से दिखाई देता है तो आप सुपर क्लास अधिसूचना पर्यवेक्षकों को हटा देते हैं। – chourobin