【发布时间】:2015-08-31 16:58:05
【问题描述】:
在我的应用程序中,我想使用 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 删除商店的方法。
【问题讨论】:
标签: objective-c core-data magicalrecord