我现在很迷茫,不知道问题出在哪里。
我创建了一个单视图应用程序(使用ARC& Storyboard),在主视图中添加了一个tableview,将它的委托和数据源设置为我的viewcontroller并实现了
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.games count];
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
cell.textLabel.text = [self.games objectAtIndex:[indexPath row]];
return cell;
}
作为协议方法。
self.games
是一个带有一些NSStrings的数组。
当我构建并运行应用程序时,会出现一个空的TableView ......
我做错了什么?
答案 0 :(得分:2)
您是否设置了委托来源& tableView的数据源?
您需要使您的班级符合UITableViewDelegate
和UITableViewDataSource
协议。 (cellForRowAtIndexPath:
已在UITableViewDataSource
协议中)
通过在类接口定义中使用尖括号,即在.h
文件中
@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...}
然后在您的.m
文件中,您需要设置tableView的委托文件所有者以及dataSource。这是这样做的 -
[tableView setDelegate:self];
[tableView setDataSource:self];
给这一点。
答案 1 :(得分:0)
你是否尝试过使游戏属性强而不是弱?我对ARC并不熟悉,但在使用它之前,你的属性可能会设置为nil。
答案 2 :(得分:0)
我认为你错过了这段代码。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}