这样写第一次加载新的数据没问题
但是加载更多时就崩溃了
崩溃的原因
注:报错的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 !!!
找到原因对症下药,解决问题
当把第一次加载新的数据改成
加载更多不变,加载新数据,就不会崩溃