gpt4 book ai didi

ios - UITableViewCell indexPathForCell : crashing app on iOS 7

转载 作者:行者123 更新时间:2023-11-28 22:31:20 24 4
gpt4 key购买 nike

在我的 UITableView 的 tableView:cellForRowAtIndexPath 方法中,我有以下代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
// UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
NSLog(@"Ok");
UITableViewCell *cell = [UITableViewCell configureFlatCellWithColor:[UIColor carrotColor] selectedColor:[UIColor sunflowerColor] style:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

NSArray *listaDeEncuestas = [defaults objectForKey:@"encuestas"];
NSDictionary *dict = [listaDeEncuestas objectAtIndex:indexPath.row];

cell.cornerRadius = 5.0f;
cell.separatorHeight = 0.0f;

cell.textLabel.font = [UIFont boldFlatFontOfSize:17];
cell.textLabel.textColor = [UIColor cloudsColor];

cell.textLabel.text = [dict valueForKey:@"encuesta"];
return cell;
}

执行此行时应用程序在模拟器中崩溃:

UITableViewCell *cell = [UITableViewCell configureFlatCellWithColor:[UIColor carrotColor] selectedColor:[UIColor sunflowerColor] style:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

这是日志输出:

2013-06-28 16:02:49.702 Encuestas[5447:a0b] -[UITableViewCell indexPathForCell:]: unrecognized selector sent to instance 0xad77ca0
2013-06-28 16:05:18.311 Encuestas[5447:3c0b] CFNetwork SSLHandshake failed (-9806)
2013-06-28 16:05:20.171 Encuestas[5447:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell indexPathForCell:]: unrecognized selector sent to instance 0xad77ca0'
*** First throw call stack:
(0x21449b8 0x1ec58b6 0x21e0c13 0x2134cfb 0x21348de 0x13a98 0x115553a 0x1ed781f 0x4c2974 0x4b67ee 0x4c28bf 0x12032b2 0x1130062 0x112ec52 0x112eb24 0x112ebac 0x112dc6f 0x112dbd1 0x112e91b 0x1131e42 0x11f6442 0x11281b9 0x1128334 0x112859e 0x1132697 0x10e8824 0x10e9b5e 0x10ffa6c 0x10fffd9 0x10eb7d5 0x25f5906 0x25f5411 0x20c03e5 0x20c011b 0x20eab30 0x20ea10d 0x20e9f3b 0x10e92b1 0x10eb4eb 0xd07d 0x2d5d725)
libc++abi.dylib: terminating with uncaught exception of type NSException

代码在 iOS 6 中运行良好,所以我想知道,为什么在 iOS 7 上会崩溃?文档中是否缺少任何内容?

最佳答案

我不能对 iOS 7 说什么,因为 NDA 和一切,但如果你查看 FUICellBackgroundView 类,你会注意到第 30 行的以下内容,然后是 indexPathForCell:,这是您的应用崩溃的地方:

UITableView* tableView = (UITableView*)self.superview.superview;
NSIndexPath* indexPath = [tableView indexPathForCell:(UITableViewCell*)self.superview];

来源:https://github.com/Grouper/FlatUIKit/blob/52a283435801e4fd45d9d6835743d7b0caa40db5/Classes/ios/FUICellBackgroundView.m#L30

现在,问题出现了,无法保证 UITableView 及其包含的 UITableViewCell 的 View 层次结构,它看起来像 FlatUIKit 正在做出一个不正确的假设。最简单的修复可能是添加一个检查返回的 View 是否是 UITableView,如果不是,只需沿着层次结构向上走,直到您位于窗口或外壳 TableView (在第一种情况下,抛出异常)。

fork 它,添加支票,提交拉取请求并为你那天为开源做了一些事情而高兴:)

关于ios - UITableViewCell indexPathForCell : crashing app on iOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373945/

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