Как мне обновить / перезагрузить, чтобы обновить изменения в моем предикате и, таким образом, получить запрос?

Привет, у меня сейчас есть табличное представление, которое заполняется через 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:'
6
задан msec 17 October 2011 в 23:41
поделиться