错误提示[__NSArrayI addObjectsFromArray:]: unrecognized selector的原因和解决方法
操作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 !!!
浙公网安备 33010602011771号