Ios UITableView赢得';不显示数据
我现在很迷茫,不知道问题出在哪里 我创建了一个单视图应用程序(带有ARC和Storyboard),向mainview添加了一个tableview,将其委托和数据源设置到我的viewcontroller并实现了它Ios UITableView赢得';不显示数据,ios,uitableview,ios5,Ios,Uitableview,Ios5,我现在很迷茫,不知道问题出在哪里 我创建了一个单视图应用程序(带有ARC和Storyboard),向mainview添加了一个tableview,将其委托和数据源设置到我的viewcontroller并实现了它 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.games count]; } - (UITableViewCell
- (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
是一个包含一些字符串的数组。
当我构建并运行应用程序时,会显示一个空的TableView
我做错了什么?是否为tableView设置了代理源和数据源 您需要使类符合
UITableViewDelegate
和UITableViewDataSource
协议。(cellforrowatinexpath:
在UITableViewDataSource
协议中)
在类接口定义中,即在.h
文件中,使用尖括号执行此操作:
@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...}
试一试。您是否尝试过让游戏属性变强而不是变弱?我不熟悉ARC,但在使用它之前,您的属性可能会设置为nil。我认为您缺少此代码
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
cell.textlab.text=@“此正常测试文本”
首先尝试一下。如果它起作用,则问题在数组中,如果不起作用,则在表视图中也不存在。首先检查它,然后告诉我问题出在哪里?它确实与我的数组有关。我将numberOfRowInstition
设置为只返回5和您建议的值,结果成功了。我像这样初始化我的数组:self.games=[[NSArray alloc]initWithObjects:@“Red”、@“Green”、@“Blue”、@“Indigo”、@“Violet”、nil]
(这是一个弱的非原子属性),这怎么不起作用呢?实际上我想找出问题出在哪里,self.games
数组问题或tableview
问题。根据我向你提出的问题,你得到最终结果了吗?这个正常的测试文本是否在tableview单元格中打印?“它确实与我的数组有关。我将NumberOfRowInsetion设置为只返回5,然后你建议的结果就生效了。”-你真的读过了吗?请发布你的完整tableview代理以及你分配游戏数组的方法。它是一致的,我确实使用了那些协议。以及我在interface Builder中设置的委托和数据源。然后尝试[tableView reloadData]代码>然后ios将刷新表内容&这些代理中的代码将被使用。仍然不起作用,如果我使用数组(查看上面的注释),数组一定有问题…我稍微查看了ARC,据我所知,游戏属性应该很强。您将它指向一个自动释放的数组,当您执行该操作的方法结束时,该数组可以被释放,并且games属性设置为nil。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;