gpt4 book ai didi

iphone - 我在 cellForRowAtIndexpath 中添加了 selectRowAtIndexPath 以标记上一个选定的行但是如果滚动 tablview 它崩溃

转载 作者:可可西里 更新时间:2023-11-01 04:41:59 26 4
gpt4 key购买 nike

我正在制作自定义 UITableView 菜单选择器组件。每次我选择特定的行时,我都会保存该行的索引路径,这样下次用户选择另一行时,人们就可以知道他之前选择的行。所以我将其添加到 cellForRowAtIndexpath 中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

cell.textLabel.text = self.left[indexPath.row][@"name"];
[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:[[[NSUserDefaults standardUserDefaults] objectForKey:kPreviousSelectedRow] integerValue] inSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.textLabel.highlightedTextColor = [UIColor grayColor];
return cell;
}

当用户选择另一行时,将该行保存到:[[[NSUserDefaults standardUserDefaults] objectForKey:kPreviousSelectedRow],这样下次他就可以看到他之前选择的行。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:indexPath.row] forKey:kPreviousSelectedRow];
}

崩溃日志:索引是 [[[NSUserDefaults standardUserDefaults] objectForKey:kPreviousSelectedRow] integerValue] 并且计数是 numberOfRows。如您所见,它不应该越界。我不知道 [0...6] 来自哪里。

2013-08-23 21:01:26.107 [17605:c07] index:10, count:14
2013-08-23 21:01:26.173[17605:c07] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 7 beyond bounds [0 .. 6]'

已编辑:如果我缓慢滚动 tableview,它不会崩溃,如果我快速滚动它,它会崩溃。什么?

最佳答案

你会崩溃,因为此时你没有指定索引的单元格,因为你只是在 - (UITableViewCell*)tableView:cellForRowAtIndexPath:

中准备它

要获得您期望的行为,请将 selectRowAtIndexPath: 移出 - (UITableViewCell*)tableView:cellForRowAtIndexPath: 并将其放置在您正在更新的另一个方法中UITableView:-(void)viewDidLoad 或您调用 -(void)reloadTable 的地方

关于iphone - 我在 cellForRowAtIndexpath 中添加了 selectRowAtIndexPath 以标记上一个选定的行但是如果滚动 tablview 它崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18403240/

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