2012-03-02 89 views
0

我很好奇,为什么我会在控制器上定制tableview单元格时遇到SIGABRT错误。单元格创建于UITableViewCell类,所有链接都可以看到。 UITableViewController不是根控制器,而是另一个根关闭的控制器UITableViewController。所以RootView - > TableViewCont - >这个TableViewCont。UITableViewController与自定义UITableViewCell

的错误是在cellForRowAtIndexPath功能:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: 
    (NSIndexPath *)indexPath{ 
static NSString *CellIdentifier = @"CellTest"; 

CellTest *cell = (CellTest *) 
       [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    NSArray *topLevelObjects = [[NSBundle mainBundle] 
           loadNibNamed:@"CellTest" owner:self 
           options:nil];//**error is thrown here**// 
    for(id currentObject in topLevelObjects){ 
     if([currentObject isKindOfClass:[UITableViewCell class]]){ 
      cell = (CellTest *) currentObject; 
      break; 
     } 
    } 
} 

// Configure the cell... 
cell.cellTitle.text = @"Test"; 
cell.cellDescription.text = @"little detail"; 

return cell; 
} 

这是在gdb的日志中的错误:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<DemoViews 0x6b16ce0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key cellDescription. 
+0

你确定你已经包括了一切吗?尝试清理项目。我在我的应用程序中有相同的代码,它的功能就像一个魅力... – fbernardo 2012-03-02 20:46:06

+0

它说,一切都很干净。它有什么不同,具有该表的文件只是一个不是根的UITableViewController,Cell代码只是一个UITableViewCell。我需要向UITableViewController的.xib添加任何内容 – Rob 2012-03-02 20:55:43

+0

xib中的这一定是奇怪的。 UITableViewCell的“自定义类”是否设置正确?它默认是'UITableViewCell',但你可能需要它成为'CellTest'。 – gregheo 2012-03-02 21:13:33

回答

2

我有同样的问题,不明白为什么我收到SIGABRT。但是我解决了这个问题:

  1. 首先将您的单元布局放入单独的xib中。不要问为什么,如果xib中有其他东西,它就不起作用。
  2. 现在你可以按照recipe of Apple for creating custom cells
+0

这工作。我想添加到单独的xib,这是在网站上提到的是,它是一个空的用户界面只有xib。另外,有一件事我觉得苹果并没有清楚,这是我理解的部分原因,静态NSString是你给单元格的id,loadNibName是xib文件的名字。他们确实说过在文本中,但我觉得它有点令人困惑,因为只有当您创建文件时才将它添加到.m文件中,它们没有提及nibName。所以这些是我注意到的一些事情,会让其他人更容易。 – Rob 2012-03-05 17:00:14

+0

呃,是的,我前一段时间也花了一天时间,而且你真的需要关注文章中的每一个词,以使它工作。很高兴你成功。 – MrTJ 2012-03-05 17:05:48

+0

@MrTJ哇,很高兴我找到了这个链接。小问题:如果在同一个tableview中有3个不同的自定义单元格,怎么办? (所以我选择使用哪个单元格fx:TVCell1,TVCell2和TVCell3) – 2012-09-04 18:17:39