0

我正在爲我的一個應用程序實現「新遊戲」功能,並遇到偶爾我的代碼崩潰的問題,因爲通知被髮送到釋放對象。只有幾個地方正在生成和使用通知。我圍繞這些要點清理了代碼,但仍然偶爾發生崩潰。iOS是否有更好的替代基於通知的代碼?

我可以想到兩種避免通知的方法 - 一種可以將消息傳遞到應用程序或協議和委託的不同部分的集中式「數據管理器」類。兩者都可能是凌亂的實現,所以我的問題是:

有沒有更好的方式來編寫代碼沒有通知時,我只需要知道應用程序內的其他兩個類中的一些更改?

有沒有辦法使用某種「弱自我」引用來註冊通知以避免必須處理釋放的實例?

回答

3

一般來說,代表團聽起來好多了。如果你想最小化你的代碼,你可以使用塊來實現委託。

確保其爲觀察員的所有對象的所有觀察他們dealloc方法刪除自己:

[[NSNotificationCenter defaultCenter] removeObserver:self]; 
相關問題