On Apr 7, 2011, at 4:24 PM, Carter R. Harrison wrote:

> I really appreciate all of your help.  I gave your suggestion a shot and I've 
> run into problems.  Here's what happens.
> 
> 1. I create a new NSManagedObject in my main application.  It gets inserted 
> into the context.
> 2. I save the context.  I can see the persistent store update in a text 
> editor (its an XML store).
> 3. I send a distributed notification with the NSManagedObject's ObjectID.
> 4. My background application consumes the notification and uses the object ID 
> to get an NSManagedObject (using [NSManagedObjectContext objectWithID:].  
> This produces an NSManagedObject that is a fault.
> 5. I try to fire the fault by using [NSManagedObject valueForKey:].
> 6. Step 5 results in an exception "CoreData could not fulfill a fault for 
> '0x1001029e0 <x-coredata://BB194166-B2FB-48ED-8177-E66F95B6CA3A/Alert/p118>'"
> 
> I'm not sure I understand why this is happening.  If the object is truly a 
> fault then shouldn't Core Data go back to the persistent store to find the 
> object?

I think I've seen this before... Try calling sync() at the top of your 
notification handler. That will force external database changes to be written 
to disk.

If that doesn't work, then you may need to fetch the object from the context 
using some identifier other than the object ID. We do this in our products that 
share a database, and it works for us when a helper app receives a notification 
from the master app that a record has been added/updated/deleted.

Nick Zitzmann
<http://www.chronosnet.com/>

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to