2016-12-24 40 views
2

我在viewWillAppear中調用addObserver,在viewWillDisappear中調用removeObserver。它似乎工作正常。但是,在Xcode崩潰日誌中,我收到了一些報告,當我調用removeObserver時,有些客戶崩潰(昨天發生了21次崩潰...)。我沒有任何客戶報告他們崩潰,所以我認爲這是相對間歇性。addObserver/removeObserver in viewWillAppear/viewWillDisappear

我讀了一個建議,在@ try/@ catch塊中封裝removeObserver調用,我可能會採用,但我很好奇爲什麼我的removeObserver失敗。我認爲這是因爲(不知何故)通知沒有被添加。 (是否有其他原因?我是iOS新手,並且是新的崩潰日誌...)

FWIW,我只從一個viewWillAppear調用addObserver,並在一個視圖中將其刪除將會消失。我試圖複製這個問題,並且永遠不會看到(在NSLog消息中)調用viewWillDisappear,而不是首先調用viewWillAppear。

謝謝!

回答

0

在viewWillAppear中調用addObserver,通過調用viewWillDisappear中的removeObserver來平衡應該工作。

您是否在viewWillAppear中添加了多個獨立觀察者,然後刪​​除viewWillDisappear中的所有觀察者?最好按名稱刪除單個觀察員,因爲系統也可以使用通知中心。

0

試着移除你在viewDidDissapeared的觀察者。您可能在視圖控制器生命週期中遇到問題。