-[__NSArrayI 长度]:无法识别的选择器发送到实例 0x7f1e9f90
Posted
技术标签:
【中文标题】-[__NSArrayI 长度]:无法识别的选择器发送到实例 0x7f1e9f90【英文标题】:-[__NSArrayI length]: unrecognized selector sent to instance 0x7f1e9f90 【发布时间】:2014-12-08 10:08:21 【问题描述】:伙计们,我有一个 array6,其中包含来自 web 服务的数据。
输出:-NSLog(@"%@",[array6 description]);
(
(
"Thu 8, Jan",
"Thu 8, Jan"
)
)
我有一个自定义表格视图“availPassengerTableViewCell”..
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *simpleTableIdentifier = @"SimpleTableCell";
availPassengerTableViewCell *cell = (availPassengerTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"availPassengerTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.phoneLbl.text = [array3 objectAtIndex:indexPath.row]; //here it showing above error..
return cell;
【问题讨论】:
array6
和 array3
的内容是什么?
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"availPassengerTableViewCell" owner:self options:nil];作为右手语句的结果,您如何期望数组。
对不起,是 array6 而不是 array3..正确的是 cell.phoneLbl.text = [array6 objectAtIndex:indexPath.row];
array3
和 array6
?数组名称应该是有意义的,这将在您拥有代码网络时对您有所帮助。
【参考方案1】:
从 NSLog 看来,您的数组中包含另一个数组,并且该数组内部包含您要在 tableview 中显示的元素。
所以改变:
cell.phoneLbl.text = [array6 objectAtIndex:indexPath.row];
到:
cell.phoneLbl.text = array6[0][indexPath.row];
【讨论】:
很好的解决方案,但它只显示数组 6 的第一个元素..我进入数组 6 的响应,它可能是可变的......例如array6 可以是(("Thu 8, Jan", "Thu 9, Jan", "Thu 6, Jan")) @AbhishekNagar:检查您的numberOfRowsInSection
实施
return[array6 count];
@AbhishekNagar:将其更改为 return [array6[0] count];
【参考方案2】:
噩梦就是这条线,cell.phoneLbl.text = [array6 objectAtIndex:indexPath.row];
您很高兴显示来自array6
的一些字符串,但不幸的是在特定索引路径(行)处没有字符串对象。取而代之的是一个NSArray
对象。
请确保这些,
更新您的回复(从您获得的任何地方)。
根据响应更正您的代码。
使代码尽可能简单。
【讨论】:
以上是关于-[__NSArrayI 长度]:无法识别的选择器发送到实例 0x7f1e9f90的主要内容,如果未能解决你的问题,请参考以下文章
颤振flutter_webview_plugin错误[NSNull长度]:无法识别的选择器发送到ios上的实例
NSMutableArray addObject,无法识别的选择器