1

我有一个似乎可以正常工作的表格视图,但它没有按预期在单元格中显示文本。换句话说,当我加载 tableView 时,它只显示空白单元格,而我希望一个单元格显示下面代码中请求的文本。

我下面的代码有什么问题吗?

注意:我只实现 cellForRowAtIndexPath 因为我的 tableView 是斯坦福的CoreDataTableViewController.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"a_cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
        if (cell == nil) {
        NSLog(@"cell is nil");
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    //Page is a managed object entity with a name attribute.
    Page *page = [self.fetchedResultsController objectAtIndexPath:indexPath];
    //The log below returns the expected string for the name value.
    NSLog(@"page.name %@", page.name);
    cell.textLabel.text = @"page.name";

    return cell;
}

目前只有一个对象或“页面”,所以我希望 tableView(顶部)中只有一个单元格显示文本。事实上,所有人都吃空了。

当我使用以下方法记录 indexPath 时:

NSLog(@"cellForRowAtIndexPath indexPath %@", indexPath); 

我得到以下打印一次:

cellForRowAtIndexPath indexPath <NSIndexPath 0x836f1d0> 2 indexes [0, 0]

那是第一个细胞吗?

奇怪的是,当我尝试像下面的单元格一样为单元格着色时,它也保持白色:

cell.backgroundColor = [UIColor redColor];

下面是 tableViewController 的标题(我的,不是斯坦福的)。注意 context 属性,这样我就可以传递 coreData managedObjectContext 来执行我需要的获取。

#import <UIKit/UIKit.h>
#import "CoreDataTableViewController.h"

@interface CDST02TableViewController : CoreDataTableViewController


@property (strong, nonatomic) NSManagedObjectContext *context;


@end
4

1 回答 1

2

你需要改变:

cell.textLabel.text = @"page.name";

到:

cell.textLabel.text = page.name;

如果这不起作用,请检查是否有任何界面元素隐藏了第一行;)

于 2013-06-25T09:55:28.297 回答