美文网首页
报错 -[__NSArrayM length]: unrecog

报错 -[__NSArrayM length]: unrecog

作者: hou_blog | 来源:发表于2016-08-09 12:52 被阅读0次

NSURL *urlImage = [NSURL URLWithString:[arrURL objectAtIndex:i]]; 在用这句代码获取arrURL(NSArray类型)中的数据时报出如上错误。

1.经查发现错误原因是:URLWithString: 方法要求的参数是NSString类型。而从arrURL中获取的数据是NSArray类型数据。

2.出现上述现象的原因是arrURL中的数据对象有误:

muArrURL是NSMutableArray类型,muArrURL数据回传给arrURL。

[muArrURL addObject:[obj objectForKey:@"visitorURLArr"]];

[muArrURL addObject:[dic objectForKey:@"visitorURL"]];

从服务器获取数据时,[obj objectForKey:@"visitorURLArr"]是NSArray类型的数据(此数据中包含3条NSString类型数据)。

[dic objectForKey:@"visitorURL"]是NSString类型的数据

想法上是arrURL中应包含4个NSString类型数据。实际上是包含两个对象,NSString类型和NSArray类型。

解决方案:

[arrURL setArray:[obj objectForKey:@"visitorURLArr"]];

[arrURL addObject:[dic objectForKey:@"visitorURL"]];

用setArray方法,则arrURL中的数据为4条NSString类型数据。

其实这个问题就是setArray和 addObject的区别问题。

相关文章

网友评论

      本文标题:报错 -[__NSArrayM length]: unrecog

      本文链接:https://www.haomeiwen.com/subject/lytulttx.html