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