对于xcode中的tableview,cellForRowAtIndexPath根本不运行

时间:2011-07-16 23:35:51

标签: iphone objective-c xcode

我正在尝试编写一个具有自定义tableviewcell的应用程序,因此我按照了Apple开发人员示例代码,但是当我运行我的应用程序时,屏幕完全是白色的。当我在numberOfSectionsInTableView,numberOfRowsInSection或cellForRowAtIndexPath中放置断点/ NSLog时,什么都没有显示。

这是我的delegate.m

RootViewController *rootViewController = [[RootViewController alloc]initWithStyle:UITableViewStylePlain];
rootViewController.displayList=[self displayList];
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController=aNavigationController;
[aNavigationController release];
[rootViewController release];
[window addSubview:[navigationController view]];
[self.window makeKeyAndVisible];

这是我的RootViewController.m中的cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"TableCell";
TableCell *tableCell = (TableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (tableCell == nil) {
    tableCell = [[[TableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    tableCell.frame=CGRectMake(0.0, 0.0, 320.0, 60);
}

NSLog(@"71");
return tableCell;

}

我知道如果没有行,cellForRowAtIndexPath将不显示,但numberOfRowsInSection不应该至少有效吗?我甚至评论了numberOfRowsInSection,应用程序仍然可以构建(虽然仍然是空白)

由于

2 个答案:

答案 0 :(得分:1)

您是否将viewcontroller作为xib文件的所有者挂钩?然后将数据源和委托方法连接到文件所有者?

编辑:如果你没有为你的tableview创建一个xib文件,我推荐它编码。创建它之后,只需像我提到的那样连接所有内容。还要为tableviewcell创建一个,然后将其加载到cellForRowAtIndexPath

答案 1 :(得分:0)

听起来像是:数据源和代理没有联系起来。可以通过

进行测试
NSLog(@"%@,%@",tableView.delegate, tableView.datasource);

如果它们显示为null,则表示您已找到问题。 如果不是这样,那么检查委托和数据源方法中的拼写错误。