UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:

时间:2011-05-05 22:51:50

标签: iphone ios uitableview datasource

我一直收到这个错误,我已经设置了一个自定义单元格,我试图显示我已经连接了数据源和IB中的委托,但我一直收到这个错误,下面是我的代码...它的疯狂,因为我有已经在另一个项目中完成了它并且它很好用..而且我没有更改除变量名之外的任何内容。

  

2011-05-06 10:40:17:004 instaCode1.3 [1500:207] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView dataSource必须从tableView返回一个单元格:的cellForRowAtIndexPath:

一切都被@synthesized等......

#pragma mark -
#pragma mark Table view data source
// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}

//This method adds headings to my sections
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    NSString *title = nil;
    // Return a title or nil as appropriate for the section.
    switch (section) {
        case REG_SECTION:
            title = @"Enter Registration";
            break;
        default:
            break;
    }
    return title;;
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.section == 0) {

        return cellRegistration;            

    }
    return 0;
}

3 个答案:

答案 0 :(得分:4)

cellForRowAtIndexPath:函数返回UITableViewCell对象,因此0不是有效的返回选项。你必须返回一个单元格。

答案 1 :(得分:1)

如果您有自定义单元格,则必须检查CELL的注册。在任何情况下都不应该是零。

如果它为零,则可以使用ALLOC,INIT获取单元格注册并返回相同的内容。

答案 2 :(得分:0)

我认为你要求来自cellforRowAtIndexPath的“return 0”有问题。 我在那条线上放了一个断点,看看它是否在哪里断裂,如果是,为什么这个部分!= 0?

REG_SECTION == 0(你确定吗?)

修改:   这会在日志中给你带来什么?

    if (indexPath.section == 0) {
        NSLog(@" cellRegistration is %@",cellRegistration);
        return cellRegistration;            
    }