数据类型崩溃处理

访问的数据类型不是期望的数据类型而产生崩溃。比如,我期望服务端返回string类型,但是后台给我返回的是NSNumber类型,那么我操作时候用到的是string的方法。结果因为找不到对应的方法而崩溃。这类情况是比较常见的,后端传回了空数据,客户端没有做对应的判断继续执行下去了,这样就产生了crash。或者自己本地的某个数据为空数据而去使用了。

解决办法:1、服务端都加入默认值,不返回空内容或无key。或者是在客户端进行非空判断。2、对容易出错的地方提前进行类型判断。

点击事件方法处理不当
这类情况比较常见,比如我的点击事件需要对传入的参数做处理,但是点击时,我传入的对象类型或者传入为空,等到参数进行处理的时候,由于方法不当,产生crash。

当客户端尝试对数组中的数据进行操作的时候,数组为空或者所做的操作index 超过数组本身范围,就会引起崩溃。

下拉刷新时崩溃
使用下拉刷新时,如果下拉的距离长了就会崩溃。原因是,在下拉刷新请求数据之前就将本地数组清空了。分析,下拉刷新的逻辑:1、下拉 2、下拉达到临界值时触发网络请求 3、等待数据加载到本地以后才更新datasource 4、tableview reloadData。

如果先清空数组再下拉请求,后果就是往下拉的距离超过一个 cell 的高度时,table view 的几个委托方法就会被调用,由于 data source 已经被清空,造成错误的内存访问(包括数组越界,访问已销毁的对象)导致 crash。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值