我一直收到这个错误,我已经设置了一个自定义单元格,我试图显示我已经连接了数据源和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;
}
答案 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;
}