关于iOS UITableView 数据源数组加载完成之后,滑动时出现cell为空的问题解决笔记

来源:互联网 发布:守望先锋伤害数据 编辑:程序博客网 时间:2024/06/06 00:13

今天中午,一朋友遇到一个问题,说遇到UITableView 加载数据时,数据源数组正常加载,且有数据,并且能够正常显示第一屏,但是在滑动时则出现如下问题,如下图:

加断点调试,发现除第一屏的8条数据之后,数据源数组中的数据也是除了前8条之后的数据都为空,此处特别说明,朋友在将plist文件读取之后做了转换,将数据转换成实体类之后存于数组中。调试发现通过indexPath.row 能够正常取得实体类对象,且不为nil,但是打开实体类发现其中属性全部为nil。经过几次逐步调试查看,也未发现问题。但后来对代码进行检查时发现,问题出现在实体类的属性定义关键字上,如下图:


可能一些有经验的朋友已经发现问题所在了。对,就是关键字,定义属性时,一般都是(nonatomic,retain/copy),但是此处却用了weak,此关键字大概意思表示此属性为弱引用,即在没有被用到时会即时释放,所以就导致了在加载cell时,只用到了数组前8条数据,其余的数组中存储的实体对象的属性会被释放而产生当滑动TableView时cell是空白的问题!


0 0