使用带有以下代码的自定义UITableViewCell实现UITableView
@interface ProfileSaveViewController : UITableViewController
{
UITableViewCell *cell0;
UITableViewCell *cell1;
UITableViewCell *cell2;
UILabel *cell2Label;
}
@property (nonatomic, retain) IBOutlet UITableViewCell *cell0;
@property (nonatomic, retain) IBOutlet UITableViewCell *cell1;
@property (nonatomic, retain) IBOutlet UITableViewCell *cell2;
@property (nonatomic, retain) IBOutlet UILabel *cell2Label;
@end
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath*)indexPath
{
if([indexPath row] == 0) return cell0;
if([indexPath row] == 1) return cell1;
if([indexPath row] == 2) return cell2;
return nil;
}
运行应用程序时出现以下消息。
*断言失败 - [UITableView _createPreparedCellForGlobalRow:withIndexPath:],/ SourceCache / UIKit_Sim / UIKit-1912.3 / UITableView.m:6072 2012-03-01 11:11:31.984 TestSplitView [765:f803] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:'
答案 0 :(得分:8)
您被要求提供一个单元格并返回nil
(或者其他不是UITableViewCell
的内容)。就是这么简单。
我看到两种可能性:
您将从tableView:numberOfRowsInSection:
返回大于3的数字。不。
您的一个或多个cell#
个商店没有连接到您的笔尖,或者没有连接到UITableViewCell
(或子类)。把它们搞好。
答案 1 :(得分:4)
如果您使用的是自定义UITableViewCell,也可能忘记在“Utilites端”识别“Identifier” - > “属性检查器”选项卡。
希望这有帮助。
答案 2 :(得分:1)
这不是创建TableView的方法。 您只需要学习UITableView类文档。
YOu may also go through this Link at where i Explained correctly
This is For UITAbleView Documentation , here you will get rich Explanation
答案 3 :(得分:0)
/* Dynamic Prototype cell in UITableView */
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView ==tblUser) {
switch (indexPath.row)
{
case 0:
return Cell_0;
break;
case 1:
return Cell_1;
break;
case 2:
return Cell_2;
break;
case 3:
return Cell_3;
break;
case 4:
return Cell_4;
break;
case 5:
return Cell_04;
break;
case 6:
return Cell_5;
break;
case 7:
return Cell_6;
break;
case 8:
return Cell_7;
break;
default:
return nil;
break;
}
}else
return nil
}
答案 4 :(得分:0)
您应该检查tableview数据源方法的行数。确保
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}
如果返回的内容更多,则cellForRow将返回nil,由于断言失败,因此tableview数据源期望UITableViewCell实例。