我使用以下代码来捕获错误,当ind.row不是有效值或有时它变为nil
@try {
if(ind.row<[[treeNode flattenElements] count])
{
[self.mTableView scrollToRowAtIndexPath:ind atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
}
@catch (NSException *e) {
NSLog(@"%@",e);
}
但有时执行此代码时会出现此错误
Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UITableViewSupport.m:1948`
可能是造成此错误的原因以及为什么不处理异常
答案 0 :(得分:3)
iOS中的断言不会抛出异常,因此您无法捕获它们。
您需要弄清楚拨打-row
时出现的问题。我的第一个猜测是“ind”已经被释放或其他东西。
答案 1 :(得分:1)
您必须自己检查索引,生成并引发异常:NSException Class Reference
+ (void)raise:(NSString *)name format:(NSString *)format, ...
答案 2 :(得分:1)
实际上它已经捕获了异常...我已经设置了objc例外的标志停止。当我删除它捕获异常....正如@stilesCrisis所指出的那样,ind值在当时为null这个例外......对于trble