用魔法记录改变商店

时间:2015-08-31 16:58:06

标签: objective-c core-data magicalrecord

在我的应用程序中,我想使用2个不同的商店。每个商店都将根据用户选择进行选择,加载并用它做任务。

Magical Record是否支持这个?

当我使用[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:]设置核心数据时,我会根据网站创建商店名称:

- (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”的商店,它会有正确的信息。

所以我需要删除一个商店,然后加载新商店。但我没有看到Magical Record移除商店的方法。

1 个答案:

答案 0 :(得分:0)

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