我有一个似乎可以正常工作的表格视图,但它没有按预期在单元格中显示文本。换句话说,当我加载 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