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

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

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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值