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