2013-02-04 63 views
3

我習慣於在init方法中放置「[NSNotificationCenter defaultCenter] addObserver」。我已經看到很多其他人放入viewDidLoad。是否有任何指導或最佳實踐?最好的地方放在哪裏「[NSNotificationCenter defaultCenter] addObserver」

+2

在需要的地方使用它。一般來說,如果您的視圖(控制器)不可見,則不應該監聽來自其他對象的事件。 –

+4

我更喜歡在init中執行它,然後在dealloc中刪除觀察者。在我們的例子中,我們希望我們的viewController即使在視圖沒有顯示時也能得到某些事件的通知,所以當視圖顯示數據已經存在時。 – EricS

+1

我認爲最好的** viewDidLoad **並刪除** viewDidDisappear ** –

回答

0

我會說老實說並不重要。我的觀點是,它最好在viewDidLoad中,但像@EricS所說,如果你想在視圖沒有顯示的時候得到通知,那麼這不會正常工作。所以,它真的只是取決於你喜歡如何使用它,當你希望收到這些事件的

0

兩個問題要問自己:

  1. 可以此通知時的UIViewController是INIT之間被解僱'編輯和它的視圖加載時?

  2. 如果可以在這些事件之間觸發通知,那麼對您的UIViewController狀態是否有影響?

這些問題將指導您調用addObserver中的哪個方法。除此之外沒有特別的「最佳做法」:

只在需要時傾聽。

相關問題