请看如下代码:其中_dataSource为NSArray的实例对象
运行之后,滑动tableview,会直接crash,崩溃现象如下:
没有任何崩溃信息;
解决方案:
第1步:程序在cell.textLabel.text = _dataSource[indexPath.row]处crash,但控制台没有任何的reason;我们可以通过命令行或则Print的形式查看对应对象是否存在问题;
第2步:我们这次采用命令行模式的形式,先用po打印看一下当前这句话涉及到的对象,分别是什么?如下图:
第3步:通过控制台,我们法线打印输出数据源中的某个元素的时候,出现了问题,reason:The process has been returned to the state before expression evaluation.,那么,我们得思考一下该对象是否涉及到内存提前释放的情况了;
第4步:现在,我们打开查看内存检测选项:
如下图,选择 Edit Scheme -> run -> Diagnostics, 选中 Objective -c Enable Zombie Objects, 最后Close
再次运行程序,滑动tableview,此时控制台会打印输出如下提示:
那么,说明我们的_dataSource对象优内存问题;
第5步:回头检查我们的_dataSource,为NSArray对象,创建方式位便利构造器初始化方式,所以,我们需要修改一下:
注意:不要忘记在dealloc中进行释放,当前为手动管理内存模式下
再次运行,滑动tableview,一切正常,搞定
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。