[****ViewController respondsToSelector:]: message sent to deallocated instance

崩潰出現(xiàn)了,而且沒有任何有效的提示,在斷點處看不到斷在哪里,只有在log有輸出下面一句。[****ViewController respondsToSelector:]: message sent to deallocated instance

很明顯這是因為一個UIViewController釋放后,又再次向這個VC調(diào)用了某些請求導(dǎo)致。而且根據(jù)log發(fā)現(xiàn)該VC是執(zhí)行了dealloc方法,這就說明可能是在VC中設(shè)置了 xxx.delegate=self; 當(dāng)VC釋放后,這個xx還沒有被釋放,所以xx的回調(diào)方法還在調(diào)用delegate即這里的vc, 所以崩潰就發(fā)生了。

解決辦法是在dealloc中設(shè)置xx.delegate = nil;即可。

我遇到這個crash是一個Controller中設(shè)置了tabbar.delegate = self;Controller釋放后windows的root交給了tabbar,這個時候不觸發(fā)tabbar的代理方法是沒問題的,一旦觸發(fā)就會去給Controller發(fā)消息。導(dǎo)致carsh。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容