我正在编写一个在一个屏幕上包含两个表格的应用程序。左表是文件夹列表,右表显示文件列表。当点击左侧的一行时,右侧的表格将显示属于该文件夹的文件。
我正在使用 Core Data 进行存储。当文件夹的选择发生变化时,右表的 NSFetchedResultsController 的 fetch 谓词会发生变化并执行新的 fetch,然后重新加载表数据。我使用了以下代码片段:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list = %@",self.list];
[fetchedResultsController.fetchRequest setPredicate:predicate];
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[table reloadData];
但是提取结果仍然相同。在获取之前和之后,我已经 NSLog'ed “谓词”,并且它们对于更新的信息是正确的。提取结果与初始提取相同(加载视图时)。
我对 Core Data 获取对象的方式不是很熟悉(有缓存系统吗?),但我之前用单表视图做过类似的事情(更改谓词、重新获取数据和刷新表),一切顺利好。
如果有人能给我一个提示,我将不胜感激。
提前致谢。