CoreData: ошибка: NULL _cd_rawData, но объект не превращается в ошибку - PullRequest
39 голосов
/ 10 февраля 2012

Я иногда получаю эту ошибку при сохранении в основные данные. Я не могу воссоздать его.

Есть ли у кого-нибудь опыт с этой ошибкой;

CoreData: error: NULL _cd_rawData but the object is not being turned into a fault

Ответы [ 3 ]

50 голосов
/ 30 августа 2013

Причина:

Это происходит, когда контекст объекта не принадлежит текущему потоку. Один из многих способов, которыми эта ошибка может проявиться.

Debug:

Когда происходит сбой, выполните следующие действия:

  1. Проверьте поток, в котором произошел сбой (Xcode> Debug Navigator)
  2. На распечатке консоли тип параллелизма NSManagedObjectContext
  3. Если тип параллелизма mainQueueConcurrencyType, то он должен находиться в главном потоке, иначе в фоновых потоках.

Консольная команда для проверки типа параллелизма:

p context.concurrencyType

В примере команды выше NSManagedObjectContext был сохранен в переменной context

Консольный вывод:

(NSManagedObjectContextConcurrencyType) $R4 = mainQueueConcurrencyType
13 голосов
/ 10 февраля 2012

После перехода к нескольким постам, у этого был лучший ответ https://web.archive.org/web/20150215081345/http://www.cocoabuilder.com:80/archive/cocoa/311615-weird-core-data-crash.html

0 голосов
/ 01 июня 2015

Я обнаружил ту же проблему при попытке прочитать (получить доступ) данные из хранилища Coredata в другом потоке (не главном).

Вы можете решить эту проблему, следуя предложению по этой ссылке:
Основные данные и потоки / Grand Central Dispatch

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