2013-02-02 31 views
6

快速的問題:刪除NSNotificationCenter的觀察員辛格爾頓目標C

我有一個單例類,這是一個註冊的幾個NSNotifications。由於Singletons在應用程序的整個生命週期內持續運行

我一定要實現

[NSNotificationCenter defaultCenter] removeObserver:self] 

在我的單身類?

在iOS中單身人士處理NSNotification中心的正確方法是什麼?

感謝

+0

可能重複[如果在AppDelegate中添加通知的觀察者,是否需要打擾刪除它?](http://stackoverflow.com/questions/9560419/if-add-an-observer-for- a-notification-in-the-appdelegate-do-i-need-to-bother-re) –

回答

9

不,你並不需要停止在這種情況下觀察。唯一一次真正的Singleton使用的內存將被釋放的時間是程序退出時的時間。當程序退出時,它會繼續並釋放所有正在使用的內存和資源的全部

+0

感謝您的澄清 – banditKing

+0

很高興我能幫上忙! – lnafziger

0

如果您希望您的單身人士在整個應用程序中收聽通知,則無需將其刪除。

如果你想,在某個點的單應停止接收通知,那麼你可以在你的單身添加一個方法,可以調用它需要的地方

- (void)removeObserver { 
    [[NSNotificationCenter defaultCenter] removeObserver:self] ; 
} 
2

只是爲了Memory着想,必須先刪除它-dealloc

+0

正如我在我的回答中指出的那樣,在單身人士中,程序退出時將刪除內存....只要程序正在運行,單例的全部內容都將保留在內存中。 – lnafziger

+0

這將爲開發人員的內存提供服務,如果在某個時間,課程將更改爲非單身人士使用 – rsc