在我的应用程序中,我想使用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移除商店的方法。
答案 0 :(得分:0)
您的代码看起来不错。当然,如果您根据商店名称不做任何不同的事情,商店将具有相同的内容。