对于每个应用更新,我想完全擦除整个Core Data数据库,然后重新设置它。我没有成功这样做。我尝试了各种各样的东西,这似乎是我最接近的。我发现了几个SO帖子,但没有一个解决方案适用于我的目的。
我正在使用MagicalRecord
,它提供了几种获取各种对象的简便方法。这是我的代码:
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"buildVersion"] intValue] < [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] intValue]) {
NSPersistentStore *store = [NSPersistentStore defaultPersistentStore];
NSError *error;
NSURL *storeURL = [NSPersistentStore defaultLocalStoreUrl];
NSPersistentStoreCoordinator *storeCoordinator = [NSPersistentStoreCoordinator defaultStoreCoordinator];
[storeCoordinator removePersistentStore:store error:&error];
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
[[NSUserDefaults standardUserDefaults] setObject:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] forKey:@"buildVersion"];
}
[MagicalRecord setupCoreDataStack];
答案 0 :(得分:4)
有一个NSPersistentStore+MagicalRecord
类别,允许您获取持久存储的URL:
+ (NSURL *) MR_urlForStoreName:(NSString *)storeFileName;
您可以使用此调用的URL使用NSFileManager删除持久存储SQLite数据库。