写的自己看的,有不对的,请大神们指出来。
[****ViewController scrollViewDidScroll:]: message sent to deallocated instance 0x12d6c22f0 野指针Bug解决(给已释放的对象发消息)
直接在本界面释放,
OC调用dealloc方法, 如下
- (void)dealloc {
_topScrollView.delegate = nil; 或者 self.tableView.delegate = nil
}
Swift 方法如下:
deinit {
self.mainTableView.delegate = nil
}
因为项目需要一个导航栏透明过渡效果,因此写了一个方法,过了好多天才发现这个bug,当滑动页面,导航栏处于半透明状态,这时点击返回(pop回上一页面),程序崩溃,报了这么个信息,Google后说是向因为一个UIViewController释放后,又再次向这个VC调用了某些请求导致。当VC释放后,这个xx还没有被释放,所以xx的回调方法还在调用delegate即这里的vc, 所以崩溃就发生了。
解决方法:在dealloc方法中给代理赋值nil
http://blog.csdn.net/zh198964/article/details/47086073
网友评论