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的区别问题。