2011-12-22 136 views
0

我现在很迷路,不知道问题出在哪里。UITableView不会显示数据

我创建了一个单视图应用程序(具有ARC &故事板)中,加入一的tableview到MAINVIEW,它的委托和数据源设置为我的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 ...

我在做什么错了?

+1

'cell.textLabel.text = @“这是正常的测试文本”'起初尝试that.If它的工作原理那么问题是您的数组既不在'tableview'如果没有作品。首先检查一下,然后告诉我问题在哪里? – Emon 2011-12-22 10:00:05

+0

它真的和我的阵列有关。 我设置'numberOfRowInSection'只返回5,你建议和它的工作。 我正在初始化我的数组,如下所示:'self.games = [[NSArray alloc] initWithObjects:@“Red”,@“Green”, @“Blue”,@“Indigo”,@“Violet”,nil] ;' (和它的一个弱的非原子性质),那怎么会不起作用? – tonekk 2011-12-22 10:21:19

+0

其实我想知道问题在哪里,'self.games'Array问题或'tableview'问题。根据我对你的问题,你有最终结果吗? '这个正常的测试文本'是在tableview单元格中打印的吗? – Emon 2011-12-22 11:11:10

回答

2

您是否将您的tableView的数据源设置为委托源&?

您需要使您的课程符合UITableViewDelegateUITableViewDataSource协议。 (cellForRowAtIndexPath:UITableViewDataSource协议)

通过在.h文件中使用尖括号中的类接口定义,即这样做:

@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...} 
.m文件

,那么你需要设置的委托文件的所有者tableView和dataSource。这是这样做的 -

[tableView setDelegate:self]; 
[tableView setDataSource:self]; 

给这个镜头。

+0

这是一致的,我确实使用了这些协议。 而我在界面生成器中设置的委托和数据源。 – tonekk 2011-12-22 10:06:07

+0

然后尝试'[tableView reloadData];'然后ios将刷新表内容和您的代码在这些代表将被使用。 – 2011-12-22 10:14:21

+0

仍然没有工作,如果我使用数组(看上面的注释),一定是错误的数组... – tonekk 2011-12-22 10:46:03

0

您是否尝试使游戏属性强而不弱?我对ARC不熟悉,但似乎在您使用它之前,您的属性可能会设置为零。

+0

我看着弧有点,并从我的理解,游戏属性应该是强大的。你指向一个自动释放数组,当你做的那个方法结束时,该数组可以被释放并且游戏属性被设置为零。 – Darren 2011-12-23 00:38:12

0

我想你错过了这段代码。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return 1; 

}