0

我想添加一個視圖控制器作爲通知的觀察者。NSNotification,addObserver和removeObserver - removeObserver都在ViewDidUnload和dealloc中?

當選擇器方法被調用時,我會提醒用戶。我會認爲這個警報只有在這個視圖控制器是頂視圖控制器時纔會出現。

我想把它作爲觀察者添加到viewDidLoad方法中。但是,更好地移除視圖控制器作爲觀察者在哪裏?

如果我在viewDidUnloaddealloc中刪除它,會不會是一個問題?

回答

2

號根據the documentation

刪除所有指定從接收的調度表定的觀察者的條目。

如果沒有這樣的條目,沒有東西可以刪除,所以這不是問題。

但是,根據你如何使用它,在viewDidLoad中添加它作爲觀察者並不意味着它只會在該視圖控制器是「頂部視圖控制器」時使用(例如,如果你有幾個標籤並從一個標籤移動到另一個標籤,除非您獲得內存警告,否則當您離開它們時,其他(不可見)標籤的視圖將不會被卸載。

根據您的目標,最好在viewDidAppear上添加觀察者(如果是這樣,請在viewWillDisappear上刪除)。

+0

謝謝...我想我會用你最後的建議。 – Sefran2 2011-04-03 20:47:10

相關問題