Objective c 用魔法记录更换商店

Objective c 用魔法记录更换商店,objective-c,core-data,magicalrecord,Objective C,Core Data,Magicalrecord,在我的应用程序中,我想使用两个不同的商店。每个商店都会根据用户的选择进行选择、加载和处理 魔幻唱片支持这一点吗 当我使用[MagicalRecord SetupCoreDataStackWithAutoMigratingSqliteStoreName:设置核心数据时,我会根据站点创建一个存储名称: - (void)setupDBForSite:(NSString *)site { DLog(@"DBStore: %@", [self loadDBStoreForSite:site]);

在我的应用程序中,我想使用两个不同的商店。每个商店都会根据用户的选择进行选择、加载和处理

魔幻唱片支持这一点吗

当我使用
[MagicalRecord SetupCoreDataStackWithAutoMigratingSqliteStoreName:
设置核心数据时,我会根据站点创建一个存储名称:

- (void)setupDBForSite:(NSString *)site {
    DLog(@"DBStore: %@", [self loadDBStoreForSite:site]);
    [MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:[self loadDBStoreForSite:site]];
}

- (NSString *)loadDBStoreForSite:(NSString *)site {
    NSString *bundleID = (NSString *)[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleIdentifierKey];
    return [NSString stringWithFormat:@"%@ - %@.sqlite", bundleID, site];
}
所以我曾希望,如果我通过“Site01”,它将创建一个独特的商店。下一次发布时,请输入“Site13”。但当我测试每个存储是否都有自己的数据时,两个存储都包含相同的信息

还是我做错了什么

编辑:好的,问题是我的测试。看起来它将加载正确的存储并保存到存储

问题是删除存储并加载新存储。当我为“Site01”加载存储,然后为“Site13”加载存储时,我仍然只看到“Site01”数据。如果我先加载“Site13”的存储,则它具有正确的信息


因此,我需要删除一个存储,然后加载新的存储。但是我看不到一种让Magic Record删除存储的方法。

您的代码看起来不错。当然,如果您不根据商店名称做任何不同的操作,那么商店将具有相同的内容

我会根据不同的商店做不同的事情。如果用户选择“Site01”,将为其创建并保存一个
UserDB
实体。下一个家伙选择“Site13”,为他创建并保存一个新的
UserDB
实体。现在两个
UserDB
实体都显示在这两个存储中。好的,我做了更多的测试,看起来对象正在保存到正确的存储中。问题是我不能在商店之间切换。我先加载“Site01”,检查其中的用户,然后尝试加载“Site13”,它会显示“Site01”的用户。如果我为“Site13”加载存储,那么我会尝试为“Site01”加载存储,我会得到“Site13”的用户。如果你甚至需要两个存储,那么这个关于你的痛苦的描述就引出了一个问题。