5

我設置了一個通知觀察者在我的視圖控制器的init方法,像這樣:我應該在哪裏刪除通知觀察員?

[[NSNotificationCenter defaultCenter] 
        addObserver:self 
        selector:@selector(saveState) 
        name:UIApplicationWillResignActiveNotification 
        object:nil]; 

哪裏是調用removeObserver:name:object:此通知的最佳場所。我目前正在用我的dealloc方法調用它,但想知道這是否會導致問題。

回答

8

不,你說得對。 dealloc是刪除通知觀察者的正確位置(除非您有一些具體原因需要先刪除觀察者)。

+0

謝謝你,很高興得到確認。 – 2011-01-14 11:25:20

+0

您能否提供一份對官方文檔的參考。 – rraallvv 2013-08-25 00:39:31

1

您可以隨時刪除viewWillDisappear:中的觀察者,或者在您完成使用並且沒有其他需要的情況下,可以將其放入函數中。

+0

除非視圖再次出現。我認爲如果我在`viewWillAppear:`中啓動通知觀察者,你的方法就可以工作。 – 2011-01-14 11:30:29

1

如果-saveState只需要激活時執行一次,那麼你可以removeObserver的-saveState內。