2012-11-13 64 views
1

正如我想的,如果我不刪除觀察者實例解除分配時,下次通知已發佈,程序將崩潰,因爲未知的選擇器異常。如果我不從nsnotification中心刪除觀察者,會發生什麼情況?

但是當我寫了一些測試代碼,發現它不是這樣,每件事情都很好,注意到發生了。我確定調用dealloc方法。

那有什麼問題呢?

+1

他們稱之爲「未定義的行爲」是有原因的。 –

+0

那麼問題是什麼?你刪除了觀察者,你的代碼崩潰了,你編寫代碼的方式不同並且工作。那麼問題是什麼? –

+0

我不刪除它,沒有錯,一切都很好。 – Rico

回答

0

蘋果正在爲你照顧它,但我認爲它的好形式無論如何都會移除觀察者。這可能會造成問題,並且你知道所有這些都會導致隨機錯誤。

+3

如何「蘋果照顧它」,我可以找到一些關於它的文件嗎? – Rico

+0

通知正在監聽,而不是正在向特定對象發送消息的代理。您只是釋放,然後停止收聽。 – rooster117

相關問題