Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CoreData: How to create two separate in-memory stores?




Frank et al:

This is definitely a bug: the problem is the identifier for the in- memory store is not being initialized correctly (the URI is returning "memory://(null)", instead of something unique) which the coordinator takes as an attempt to add the same store twice. Unfortunately, there is no workaround for this (other than using one coordinator per memory store.) We'll fix this as soon as possible.

- matthew

= = = = =
Matthew Firlik
Manager, Core Data
email@hidden


On Jul 27, 2005, at 9:57 AM, Frank Illenberger wrote:

Two points:

1. Using a separate persistent store coordinator is not an option because I have to be able to get objects from both stores into one managed object context
2. There is no limitation to the number of stores you can use with one PSC. I am successfully using three separate SQLite stores on one PSC. It just does not work with more than one in-memory store.



Am 27.07.2005 um 18:45 schrieb SA Dev:

Someone please correct me if I'm wrong here (I've not tried this myself), but the way I understand it is that you'd have to create a separate NSPersistentStoreCoordinator. I *think* this is because you can only have one store of any given type in the coordinator. Again, I may be dead wrong.

On Jul 27, 2005, at 12:25 PM, Frank Illenberger wrote:

Sure, I tried the following:

NSPersistentStoreCoordinator *psc = [moc persistentStoreCoordinator]; id storeA = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];
id storeB = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];


Which produces the "Can't add the same store twice" exception.
And I tried:

id storeA = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:[NSURL urlWithString:@"storeA"] options:nil error:nil];
id storeB = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:[NSURL urlWithString:@"storeB"] options:nil error:nil];


Which throws the exception "Can't find table for entity Person in database at URL storeA" and actually creates two files named "storeA" and "storeB".

Am 27.07.2005 um 18:21 schrieb SA Dev:

Frank:

It all depends on what you mean by "... try to add a second store with the same call ...". That's a pretty big question. Actual code, please? :-)


On Jul 27, 2005, at 11:57 AM, Frank Illenberger wrote:

Hi,

does anybody know if it is possible to use two separate in memory stores with one persistent store coordinator?

I use the following code to create an in-memory store:

NSPersistentStoreCoordinator *psc = [moc persistentStoreCoordinator];
id store = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];


This works fine. But if I try to add a second store with the same call, I get the following exception: "Can't add the same store twice"

So I thought, the two stores needed separate urls identifying them. But when I start putting names into the URL like in the following line


id store = [coordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:[NSURL URLWithString:@"storeA"] options:nil error:nil];



I get the following error: "Can't find table for entity Person in database at URL storeA"


So how do I create two separate in-memory stores in one PSC?


Cheers

Frank

_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >CoreData: How to create two separate in-memory stores? (From: Frank Illenberger <email@hidden>)
 >Re: CoreData: How to create two separate in-memory stores? (From: SA Dev <email@hidden>)
 >Re: CoreData: How to create two separate in-memory stores? (From: Frank Illenberger <email@hidden>)
 >Re: CoreData: How to create two separate in-memory stores? (From: SA Dev <email@hidden>)
 >Re: CoreData: How to create two separate in-memory stores? (From: Frank Illenberger <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.