-[__NSArrayI addObject:]: unrecognized selector与-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7f85951278e0
网络数据时候又碰到这样的问题,
我的代码
@property(nonatomic,copy)NSMutableArray *EWDataArray;
赋值
[self.EWDataArray addObjectsFromArray:dataDic[@"items"]];//dataDic[@"items"]是json数据中,dataDic字典的数组键值
报错:
-[__NSArrayI addObject:]: unrecognized selector sent to instance
原因:
NSMutableArray继承于NSArray,把一个NSArray对象赋值给了一个声明为NSMutableArray的对象,于是在对NSArray对象使用addObject方法时出错。
建议:在把NSArray赋值给NSMutableArray对象时使用
self.EWDataArray = [dataDic[@"items"] mutableCopy];
上网搜索查到还可以把self.EWDataArray的属性又copy改为 retain
可是在修改的过程中把请求数据相加使用:
self.EWDataArray addObject:dataDic[@"items"];
报错
-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7f85951278e0
打断点查看崩溃代码行,崩溃到self.EWDataArray,的键值对取值。
修改为:
[self.EWDataArray addObjectsFromArray:tempArray];
数据显示正常。上网查找原因很多解释是这样的 暂时未追查到底。暂时记录这里