From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Core data save error with multiple 
persistent storesDate: Sun, 16 Nov 2008 21:02:37 +0100

In my application I have two managed object contexts, as I need to be able to 
save two subsets of my Core Data setup separately. These are both using one and 
the same persistent store coordinator; the coordinator has two stores.  I take 
care that every object instance gets inserted into the right 
managedObjectContext, by using [NSEntityDescription 
insertNewObjectForEntityForName: ...]. And it gets assigned to the right 
persistent store by using - (void) awakeFromInsert{   ...   
[managedObjectContext assignObject:self toPersistentStore: 
[persistentStoreCoordinator persistentStoreForURL: url]];}.There are no 
relationships between objects in different persistent stores, as it should be. 
This seems to work OK on one system, but leads to a strange error on two other 
systems (for the same program). When a change has been made to the Core Data 
objects (e.g. adding an instance), the 'save' action of the 
managedObjectContext gives an exception (no error screen) saying 'can't 
reassign object to a different store once it has been saved'. This means the 
Core Data stack cannot be saved anymore, which is of course a serious problem.  
Do you know what causes this error? Do I need to use a different setup for the 
managedObjectContext - persistentStoreCoordinator - persistentStores system?  
Thanks for your time,Arthur C.  
 
> The example in the documentation:>   
> http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdCreateMOs.html#/
>  >/apple_ref/doc/uid/TP40001654-SW2>>does the assignment immediately after 
> the  >"insertNewObjectForEntityForName" call, not in "awakeFromInsert".
All right, but that does not cover the case of an object being added using the 
'add' button linked to the array controller (which btw is bound to the correct 
managedObjectContext). Then you end up directly in awakeFromInsert, which at 
least should be OK if it is executed only once.
>I'm wondering if undo is what's causing your problem. If not undo,  >then some 
>other circumstances that leads to "awakeFromInsert" being  >called when the 
>object is not really brand-new.
I'll check that. Undo is probably not the problem, we can trigger the error 
without doing an undo operation.
 
>Have you tried doing it the way Apple's example shows? 
 
I'll do that, but as said, it's incomplete and the awakeFromInsert will still 
be needed...
 
 
Thanks so far,
Arthur C.
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to