2018-03-14 野指针Bug解决(给已释放的对象发消息)

写的自己看的,有不对的,请大神们指出来。

[****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

你可能感兴趣的:(2018-03-14 野指针Bug解决(给已释放的对象发消息))