У меня есть панель поиска и некоторые фильтры в моем приложении, которые создают два предиката. Один для строки в строке поиска и один для фильтра (UISegmentedControl
).NSManagedObjectContext -save: сбой при использовании NSPredicate
Когда предикаты используются и вставить один объект в контекст, а затем вызвать -save:
в приложение вылетает с:
CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Can't use in/contains operator with collection 1379410732 (not a collection) with userInfo (null)
в точке сохранения:
Это не происходит, когда предикаты не используются. Могу ли я как-то удалить предикаты во время сохранения? Я уже пробовал это, получив NSFetchRequest
, но я не могу установить его обратно на контроллер.
Редактировать
Я также попытался добавить self
в качестве наблюдателя на NSManagedObjectContextDidSaveNotification
, а затем использовать -mergeChangesFromContextDidSaveNotification:
как одно обсуждение на SO предложил. Это тоже не помогло.
Возможно, покажите предикаты? –
Спасибо, Мартин, я только что нашел проблему. Решение все еще имеет запутанную часть, но авария исправлена. И ты был прав, это был предикат. –