![](/img/trans.png)
[英]UILocalizedIndexedCollation -[__NSCFNumber length]: unrecognized selector sent to instance
[英]ios [__NSCFNumber length]: unrecognized selector sent to instance
我创建了一个自定义单元格,并在其上放置了按钮,按钮事件是这样的
[cell.BtnRequest addTarget:self action:@selector(didTapButton:) forControlEvents:UIControlEventTouchUpInside];
和didtapbutton代码是这个
- (void)didTapButton:(id)sender {
WorkerDetailsVC *wvc=[self.storyboard instantiateViewControllerWithIdentifier:@"workerdetailsvc"];
NSIndexPath *indepath = [self.tblorderdata indexPathForCell:sender];
wvc.arrworkarrequest=[arrData objectAtIndex:indepath.row];
NSLog(@" arr send :%@", wvc.arrworkarrequest);
wvc.struserid = struserid;
[self.navigationController pushViewController:wvc animated:YES];
}
在下一页上,我得到了数组arrworkarrequest,在加载所有下一页后,它将显示如下错误
2014-10-01 15:08:42.607 demo[2151:60b] -[__NSCFNumber length]: unrecognized selector sent to instance 0x911a860
2014-10-01 15:08:42.613 dmeo[2151:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x911a860'
您的问题是sender
的类型是UIButton
而不是UITableViewCell
因此它被卡在[self.tblorderdata indexPathForCell:sender]
因为该方法调用期望使用UITableViewCell
的类型。
您需要找到按钮所在的单元格。您可以使用while循环来完成此操作(尽管这有点可怕)。 就像是:
id obj = sender;
while (![obj isKindOfClass:[UITableViewCell class]]) {
obj = [sender superview];
}
[self.tblorderdata indexPathForCell:obj];
感觉好像是在滥用视图层次结构。
如果直接比较字符串的长度,则会发生这种情况
例如
NSString * myString = @“ 2”;
使用此语句将产生错误
如果(myString.length == 2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.