我在我正在制作的新应用程序中使用Storyboard,并且在我的大多数viewcontrollers中都有一个tableview,它们的设置几乎完全相同;使用原型单元,一个独特的单元标识符,所有UI方面都非常相似。 Delegate和dataSource都已正确连接。该应用程序在iOS6和最新的iOS7测试版上运行完美,问题是2个视图控制器在iOS5下崩溃。
调用dequeueReusableCellWithIdentifier
时,在以下委托方法中发生崩溃(访问不良)。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MoreCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
// Rest of code snipped ...
}
错误消息从以下任何内容变为以下任何一种:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UITableViewReorderingSupport removeFromSuperview]: unrecognized selector sent to instance 0x2a3e20'
或
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayer removeFromSuperview]: unrecognized selector sent to instance 0x2b9f90'
还有第三个错误涉及NSInvocation removeFromSuperview
,但我不再得到这个错误。
我在故事板中的笔尖中看不到任何明显的问题。正如我之前所说,它们的配置几乎完全相同,因此仅在某些视图控制器上发生此崩溃是没有意义的。我也没有自动布局,所以这不是问题。
如果我以老式的方式创建单元格(故事前板),它可以正常工作。但我不想这样做,我不应该像使用故事板那样失败......
if (cell==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
cell.textLabel.textColor = [UIColor colorWithRed:(100/255.0f) green:(150/255.0f) blue:(50/255.0f) alpha:1.0];
cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:17.0];
cell.detailTextLabel.textColor = [UIColor colorWithRed:(85/255.0f) green:(85/255.0f) blue:(85/255.0f) alpha:1.0];
cell.detailTextLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:15.0];
}
如果我在它前面注明dequeueReusableCellWithIdentifier
行,上述工作正常。
所以看起来这个问题必须在故事板中,但是当我将它与运行良好的viewcontrollers进行比较时,我看不出它有什么问题。
更新
发布此问题后,我删除了一个有问题的viewcontrollers,并从头开始再次添加。在这样做的过程中,我找到了问题的根本原因 - 将视图连接到其selectedBackgroundView
的单元格。这个确切的视图正在我的应用程序中的其他表中使用就好了,但在这个特定的一个上它导致如上所述的崩溃,我完全不知道为什么。我还没有任何修改它的代码。它刚刚连接在笔尖上,就是它......
我可以通过在代码中创建selectedBackgroundView来解决这个问题,但我仍然不明白这与此有什么不同。
答案 0 :(得分:3)
你说你在别处使用过它。如果您从其他单元格中复制 GUI元素,则可能忘记删除复制的插座连接器。通过逐个选择元素进行检查,并检查Connections Inspector中显示的内容。