NSFetchResultsController,将新数据填充到表格视图中
Posted
技术标签:
【中文标题】NSFetchResultsController,将新数据填充到表格视图中【英文标题】:NSFetchResultsController, populate new data into the table view 【发布时间】:2013-01-31 14:17:36 【问题描述】:我正在尝试实现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
。那么,如何将新数据填充到表格视图中呢?
【问题讨论】:
[self.tableView reloadData]; 就这样?谢谢,我试试看。 你的厕所..如果你有任何问题,请告诉我 【参考方案1】:出奇的简单。 NSFetchedResultsController
负责为 table view 获取数据,所以:
[self.tableView reloadData];
如果您仍然获得“旧”数据,并且您按照 Apple 样板代码对获取的结果控制器进行延迟实例化,则在上面添加这一行:
self.fetchedResultsController = nil;
除了将其设置为 nil 之外,您还可以让现有的 FRC 再次执行其获取请求(这样更有效):
[self.fetchedResultsController performFetch:nil];
【讨论】:
我正在使用 UIRefreshController,我使用这些代码来执行刷新:NSError *error = nil; if ([self.fetchedResultsController performFetch:&error]) [self.tableView reloadData]; [(UIRefreshControl *)sender endRefreshing]; 但 endRefreshing 没有被调用。我如何确保我没有得到旧数据?【参考方案2】:获取数据后你必须重新加载你的表
[yourTableView reloadData];
【讨论】:
以上是关于NSFetchResultsController,将新数据填充到表格视图中的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSFetchResultsController 时 UICollectionView 滚动不流畅
NSFetchResultsController,将新数据填充到表格视图中
NSFetchResultsController 委托没有被调用
NSFetchResultsController 委托没有被调用
NSFetchResultsController -controllerDidChangeContent: - 尝试使用 userInfo 为单元格创建两个动画