[****ViewController respondsToSe

2017-12-08  本文已影响0人  无声落叶

崩溃出现了,而且没有任何有效的提示,在断点处看不到断在哪里,只有在log有输出下面一句。[****ViewController respondsToSelector:]: message sent to deallocated instance

很明显这是因为一个UIViewController释放后,又再次向这个VC调用了某些请求导致。而且根据log发现该VC是执行了dealloc方法,这就说明可能是在VC中设置了 xxx.delegate=self; 当VC释放后,这个xx还没有被释放,所以xx的回调方法还在调用delegate即这里的vc, 所以崩溃就发生了。

解决办法是在dealloc中设置xx.delegate = nil;即可。

我遇到这个crash是一个Controller中设置了tabbar.delegate = self;Controller释放后windows的root交给了tabbar,这个时候不触发tabbar的代理方法是没问题的,一旦触发就会去给Controller发消息。导致carsh。

上一篇 下一篇

猜你喜欢

热点阅读