我只是按照教程中的几个步骤来创建一个包含50行的简单TableView,但我得到“Signal SIGABRT”:/ 我将Storyboard中的TableView与我创建的TableViewController-Class连接起来。
这是我的简单代码:
#import "TableViewController.h"
@interface TableViewController ()
@end
@implementation TableViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 50;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
cell.textLabel.text = [NSString stringWithFormat:@"Row %i",indexPath.row];
return cell;
}
答案 0 :(得分:2)
欢迎使用Stack Overflow!设置UITableViewCell
的标准方法稍微改变了一点。这意味着Xcode提供的模板代码for tableViews使用-tableView: dequeueReusableCellWithIdentifier: forIndexPath:
方法,而较旧的教程和书籍(大多数)使用tableView: dequeueReusableCellWithIdentifier:
如果你想以新的方式(-tableView: dequeueReusableCellWithIdentifier: forIndexPath
)进行,你需要添加
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
中的viewDidLoad
,(或在storyboard / nib中设置原型单元重用ID,并适当设置单元格类型 - 基本应该用于普通单元格。)
旧方式(tableView: dequeueReusableCellWithIdentifier:
)通常后跟if
语句,如下所示:
if(cell == nil)
{
cell = [UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
(\\Configure the cell. . .
评论在哪里)
虽然这是非常简单的东西,但公平地说,大多数教程都会教授旧方法,如果你没有注意到两个-tableView:dequeueReusableCell
方法之间的微小差异,我认为这对于初学者来说可能会让人感到困惑。显示新方式的教程是here