Привет, у меня сейчас табличное представление, которое заполняется через Core Data.
Я ограничиваю результаты с помощью NSPredicate, чтобы в tableView отображались только элементы с одинаковым порядковым номером.
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:'