NSFetchedResultsController,将新数据填充到表视图中

时间:2013-01-31 14:17:37

标签: iphone ios core-data tableview uirefreshcontrol

我正在尝试实施UIRefreshControl代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIRefreshControl *refreshController = [[UIRefreshControl alloc] init];
    [refreshController addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
    [self setRefreshControl:refreshController];
}

- (void)refresh:(id)sender
{
    NSLog(@"Freshing");
    //populate new data into the table view
}

我正在使用NSFetchResultsController。那么,如何将新数据填充到表视图中呢?

2 个答案:

答案 0 :(得分:0)

出乎意料的简单。 NSFetchedResultsController负责获取表视图的数据,因此:

[self.tableView reloadData]; 

如果您仍然获得“旧”数据,并且您使用了带有提取结果控制器的延迟实例化的Apple样板代码,则在上面添加以下一行:

self.fetchedResultsController = nil;

除了将此设置为nil之外,您还可以让现有的FRC再次执行其获取请求(这更有效):

[self.fetchedResultsController performFetch:nil]; 

答案 1 :(得分:0)

获取数据后,您必须重新加载表格

[yourTableView reloadData];