iOS5:如何防止rectForRowAtIndexPath方法的异常

时间:2011-10-28 14:12:26

标签: exception ios5 tableview nsindexpath

例外:

  

在无效索引路径上请求rect

代码:

CGRect rect = [tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];

修正:

if ([tableView numberOfRowsInSection:0] <= i) {
    return;
}

也许存在更好的方式

1 个答案:

答案 0 :(得分:3)

通常rectForRowAtIndexPath可以将无效的indexPath作为文档状态处理,但在IOS 7.1中,它不能正确处理无效的indexPath。所以传入nil会导致崩溃并收到错误消息:

  

请求无效索引路径的rect(   {length = 2,path = 0 - 0})

总之,对rectForRowAtIndexPath手动执行nil检查。