iOS5:如何防止 rectForRowAtIndexPath 方法出现异常
Posted
技术标签:
【中文标题】iOS5:如何防止 rectForRowAtIndexPath 方法出现异常【英文标题】:iOS5: How to prevent exception for rectForRowAtIndexPath method 【发布时间】:2011-10-28 14:12:25 【问题描述】:例外:
在无效索引路径处请求矩形
代码:
CGRect rect = [tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
修复:
if ([tableView numberOfRowsInSection:0] <= i)
return;
也许存在更好的方式
【问题讨论】:
【参考方案1】:通常 rectForRowAtIndexPath 可以处理无效的 indexPath 作为文档状态,但在 ios 7.1 中,它不能正确处理无效的 indexPath。所以传入 nil 会导致崩溃并得到错误信息:
在无效索引路径处请求 rect ( 长度 = 2,路径 = 0 - 0)
总之,rectForRowAtIndexPath 需要手动进行 nil 检查。
【讨论】:
以上是关于iOS5:如何防止 rectForRowAtIndexPath 方法出现异常的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UIMenuController iOS5.1 防止 UITextView 上的复制/粘贴/选择弹出框