Базовые данные: ошибка при удалении несохраненного объекта - PullRequest
0 голосов
/ 28 июля 2010

У меня возникли проблемы с основным проектом данных. У меня есть NSArrayController с NSManagedObjects в нем, и кнопки + / -. Если я удаляю объект в строке после того, как файл был сохранен, он работает отлично, но если я добавляю новый объект и немедленно удаляю его снова (не изменяя ни одно из значений по умолчанию), я получаю ошибку:

Serious application error.  Exception was caught during Core Data change processing: Unknown number type or nil passed to arithmetic function expression. with userInfo (null)  
Unknown number type or nil passed to arithmetic function expression.  

Это тот же самый случай, если я отменяю добавление нового объекта.

Кто-нибудь может дать мне указатель, что делать? Я предполагаю, что это как-то связано с тем, что у него есть только временный идентификатор, но как его решить, я не знаю.

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Я нашел проблему и решение.Для записи я опишу это.

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

0 голосов
/ 28 июля 2010

Таблицы обычно не содержат NSManagedObjects. Скорее либо NSArrayController предоставляет атрибуты управляемых объектов в виде значений через привязки, либо объект, соответствующий NSTableViewDataSource. Удаление выбранного объекта, предоставленного в любом из этих сценариев, может быть выполнено множеством способов. Проблема в том, что вы вообще не объяснили, как настроено ваше дело.

Возможно ли, что ваше удаление (независимо от цели / действия, к которому подключена ваша кнопка) прошло ноль или что-то неожиданное? Я могу вообразить похожую ошибку, если вы попросили контекст управляемого объекта удалить значение с плавающей запятой или другую случайную вещь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...