【发布时间】:2012-01-16 07:31:43
【问题描述】:
当 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`
这个错误可能是什么原因以及为什么没有处理异常
【问题讨论】:
-
我不知道iphone,但是,我想你也应该加
@catch (Exception *ee) {NSLog(@"%@",ee);} -
你不应该一开始就试图捕捉断言失败。您的
NSIndexPath创建不正确。 -
@KevinBallard 实际上我正在做的是在 textfielddidbeginediting 中我将该单元格的索引传递给名为 ind 的 ivar,由 ind=[[self.mTableView indexPathForCell:(UITableViewCell*)textField.superview] 保留] ;然后在键盘显示方法中,我使用上面的代码使文本字段在键盘出现时向上滚动,但这会给出这样的错误
标签: iphone ios nsexception