加载数据的坑

2017-06-08  本文已影响0人  这个姑凉儿

这样写第一次加载新的数据没问题

但是加载更多时就崩溃了

崩溃的原因

注:报错的arrayI 是不可变数组报错  arrayM是可变数组报错,那么问题来了我定义明明是可变的数组来接收的数据,为什么报错出来的是不可变的呢?

答:(百度的)今天在操作NSMutableArray数字增加和删除时候出现崩溃,报错[__NSArrayI addObjectsFromArray:]: unrecognized selector。

找了一个小时,发“__NSArrayI”这个提示比较重要。查了一下发现

__NSArrayI is a code-word for an immutable array - that is, a "regular" NSArray which you cannot change.

__NSArrayM is a code-word for a mutable array - that is, NSMutableArray. In NSMutableArray, you can add and remove items.

实际上NSArrayI是NSArray.

NSArrayM才是NSMutableArray.

奇怪,我明明是声明的是NSMutableArray. 怎么突然变成了NSArray.

排查代码才发现,在拷贝数组时候用了 .copy 来拷贝,而NSMutableArray拷贝数组时候需要用 .mutableCopy !!!

找到原因对症下药,解决问题

当把第一次加载新的数据改成

加载更多不变,加载新数据,就不会崩溃

上一篇 下一篇

猜你喜欢

热点阅读