我有一个表视图似乎正在工作,但它没有按预期在单元格中显示文本。换句话说,当我加载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
答案 0 :(得分:2)
您需要更改:
cell.textLabel.text = @"page.name";
要:
cell.textLabel.text = page.name;
如果这不起作用,请检查是否有任何界面元素隐藏第一行;)