Сбой при изменении значения атрибута модели управляемых объектов в базовых данных - PullRequest
0 голосов
/ 09 марта 2011

У меня есть контроллер табличного представления, который выбирает элементы, используя выбранный контроллер результатов для каждой строки.Когда строка выбрана, она выталкивает новый контроллер представления для редактирования этой конкретной модели управляемого объекта - когда я редактирую и пытаюсь сохранить, я получаю следующееВ чем причина?Спасибо

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 0 (not a collection) with userInfo (null)
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
_Unwind_Resume called from function -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] in image CoreData

.

1 Ответ

3 голосов
/ 09 марта 2011

Эта часть ошибки:

...Can't use in/contains operator with collection 0 (not a collection)...

обычно указывает на неверный предикат, скорее всего, для атрибута fetch или fetched.Скорее всего, вы пытались использовать оператор IN или CONTAINS в предикате без предоставления фактической коллекции значений, в которых могут находиться атрибуты целевых объектов. Например,

NSPredicate *p=[NSPredicate predicateWithFormat:@"attribute1 IN %@", @"a string not an array"];

... vs:

NSArray *inCollection=[NSArray arrayWithObjects:@"Tom",@"Dick",@"Harry",nil];
NSPredicate *p=[NSPredicate predicateWithFormat:@"attribute1 IN %@", inCollection];

Предположительно, что-то, что вы изменяете в своем редактировании, нарушает ваш предикат в выборке таблицы.Вы также хотите убедиться, что реализовали методы делегата выбранного контроллера результатов, чтобы при вставке, удалении или изменении объекта таблица корректно обновлялась для отражения этих изменений.

(Остальная частьошибка не имеет значения. Это просто предупреждение о фреймворке, с которым ничего не поделаешь.)

...