johan
johan

Reputation: 6666

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

I occasionally get this error when saving to core data. I cannot manage to recreate it.

Does anyone have any experience with this error;

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

?

Upvotes: 43

Views: 16362

Answers (3)

Neal Ehardt
Neal Ehardt

Reputation: 10954

Reason:

This happens when the object's context does not belong to the current thread. One of many ways that mistake can manifest itself.

Debug:

When the crash occurs do the following:

  1. Check the thread in which the crash occured (Xcode > Debug Navigator)
  2. On the console print, the concurrency type of the NSManagedObjectContext
  3. If the concurrency type is mainQueueConcurrencyType then it needs to be on the main thread otherwise on the background threads.

Console command to check concurrency type:

p context.concurrencyType

In the sample command above the NSManagedObjectContext was stored in the variable context

Console Output:

(NSManagedObjectContextConcurrencyType) $R4 = mainQueueConcurrencyType

Upvotes: 58

Ohmy
Ohmy

Reputation: 2221

I found the same problem when I tried to read (access) data from a Coredata Store in other thread (not main).

You can solve this problem by following this suggestion from this link:
Core Data and threads / Grand Central Dispatch

Upvotes: 1

Related Questions