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

崩溃出现了,而且没有任何有效的提示,在断点处看不到断在哪里,只有在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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容