gpt4 book ai didi

iphone - scrollToRowAtIndexPath 错误

转载 作者:技术小花猫 更新时间:2023-10-29 10:42:32 37 4
gpt4 key购买 nike

我在使用使用 tableview 的应用程序时遇到错误,错误如下所示。

2012-01-19 10:19:51.442 bcode[1176:207] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: row (3) beyond bounds (3) for section (0).'
*** First throw call stack:
(0x16c3052 0x1920d0a 0x166ba78 0x166b9e9 0x68a136 0x3bfdf 0x6c2fbf 0x6c32d4 0x6c35d7 0x6d2666 0x87890e 0x878c17 0x878c86 0x62c499 0x62c584 0x2718e00 0x13614f0 0x15fa833 0x15f9db4 0x15f9ccb 0x1d05879 0x1d0593e 0x5fba9b 0x2838 0x2795 0x1)
terminate called throwing an exception(gdb)

NSRangeException, -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]
row (3) beyond bounds (3) for section (0).

发生的事情是,当用户向下钻取我的导航 View 时,他们可以从每个 View 的 TableView 中选择一个单元格,稍后将用于构建搜索字符串。

但是,如果他们犯了错误,我允许他们返回并更改他们的选择。当用户更改父 View 的值然后仅当先前的选择超出条目数时才进入 subview 时,会发生此错误在当前的表格 View 中..

通常这不会是一个大问题,但是,在 viewDidAppear 中,我正在调用一个滚动到先前选择的单元格的方法......这显然是破坏应用程序并给我错误的原因。

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//Scroll to previously selected value
[self.tableView scrollToRowAtIndexPath:oldCheckedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}

我怎样才能阻止它执行我已经尝试了大约 100 个不同的 if 父 View 和 subview 中的语句捕获新的索引路径并再次检查旧选择的索引路径然后设置

oldCheckedIndexPath = nil;

然而无论如何它总是设法搞砸。

最佳答案

干净的方式,假设 self 是 tableView 数据源:

检查 TableView 中的部分数:

if ( [self numberOfSectionsInTableView:self.tableView]
> oldCheckedIndexPath.section

并检查该部分的行数:

  && [self tableView:self.tableView numberOfRowsInSection:
oldCheckedIndexPath.section] > oldCheckedIndexPath.row )
{
[self.tableView scrollToRowAtIndexPath: // etc etc etc

或者,快速破解:

@try {
[self.tableView scrollToRowAtIndexPath: // etc etc etc
}
@catch ( NSException *e )
{
NSLog(@"bummer: %@",e);
}

关于iphone - scrollToRowAtIndexPath 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917812/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com