2011-05-18 77 views
0

我在那里我是从不同的笔尖加载自定义单元格的表视图分配的标签值,我得到异常:例外,而在自定义单元格

 2011-05-18 18:01:00.323 custInfoService[4370:20b] *** Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:], /SourceCache/UIKit/UIKit-984.38/UITableView.m:4709 
2011-05-18 18:01:00.324 custInfoService[4370:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:' 
2011-05-18 18:01:00.325 custInfoService[4370:20b] Stack: (
    11125851, 
    2442997307, 

当我用的断点,然后我来认识xception是在开关case.I无法弄清楚为什么它给予异常?帮我! 这里是我的代码:

 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     [[NSBundle mainBundle] loadNibNamed:@"BookDetailViewController" owner:self options:NULL]; 
     cell = nibloadedcell; 
     } 

    tbcel.layer.cornerRadius = 10; 
    tbcel.text = aBook.Name; 


    UILabel *fieldlabel = (UILabel *) [cell viewWithTag:1]; 
    fieldlabel.text = [fieldarray objectAtIndex:(indexPath.row)]; 
    UILabel *valuelabel = (UILabel *) [cell viewWithTag:2]; 
    switch(indexPath.section) 

    { 
     case 0: 
      valuelabel.text = aBook.Address; 
      break; 
     case 1: 
      valuelabel.text = aBook.Phone; 
      break; 
     case 2: 
      valuelabel.text = aBook.Purchase; 
    } 

    return cell; 
} 

回答

0

所以最明显的问题是

[[NSBundle mainBundle] loadNibNamed:@"BookDetailViewController" owner:self options:NULL]; 
cell = nibloadedcell; 

没有设置你的nibloadedcell出口,所以cellnil一路过关斩将。因此没有有效的单元格被返回,并且您收到错误UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:

不要忘记,消息nil默默无视 - 如果单元格是nil,其余的函数可以执行正常,只是没有做任何事情!

+0

谢谢你...我犯了愚蠢的错误,:)笔尖名称是“bookdetailviewcontrollercell”,我正在使用我写的上述内容。 – user720235 2011-05-18 12:52:42

+0

@ user720235:如果他的答案解决了您的问题,您应该将其标记为已回答,以便他可以获得信用并且其他人可以看到。 – 2011-05-18 13:12:48