UITableView不会显示数据

时间:2011-12-22 09:54:11

标签: ios uitableview ios5

我现在很迷茫,不知道问题出在哪里。

我创建了一个单视图应用程序(使用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 ......

我做错了什么?

3 个答案:

答案 0 :(得分:2)

您是否设置了委托来源& tableView的数据源?

您需要使您的班级符合UITableViewDelegateUITableViewDataSource协议。 (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;

}