【发布时间】:2011-10-17 23:35:16
【问题描述】:
您好,我目前有一个表格视图,正在通过 Core Data 填充。
我正在使用 NSPredicate 限制结果,以便仅在 tableView 中显示具有相同 OrderNumber 的项目。
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"orderNumber == %@", orderNumberLabel.text];
NSLog(@"predicate is: %@",predicate);
[fetchRequest setPredicate:predicate];
一旦完成输入订单的表单,按下按钮[保存订单],orderNumber 和 orderNumberLabel 都会加一。
我期望发生的是 tableView 应该是空的,因为新的 orderNumber 在 sql 数据库中没有条目。但是,这不会发生并调用 [myTableView reloadData];也没有解决。
但是,如果我退出项目并重新运行它,我将拥有新的 orderNumber 和一个空的 tableView。因此,在运行时发生了一些事情,设置了获取请求和谓词,我需要在我的 saveOrderButtonPressed 方法中通过调用来尝试和复制。唯一的问题是我不知道该怎么做,有人可以帮忙吗?
输入订单后退出并重新运行应用程序后,有时我也会收到以下错误。这与我更改 orderNumber 有关,但我认为一旦我更新谓词/fetchRequest,它就会消失。我还需要一些指导,我需要禁用缓存吗?
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason:'FATAL ERROR: The persistent cache of section information does not match
the current configuration. You have illegally mutated the NSFetchedResultsController's
fetch request, its predicate, or its sort descriptor without either disabling
caching or using +deleteCacheWithName:'
【问题讨论】:
标签: iphone objective-c uitableview nspredicate nsfetchedresultscontroller