MagicalRecord:删除整个数据并再次设置核心数据堆栈

Posted

技术标签:

【中文标题】MagicalRecord:删除整个数据并再次设置核心数据堆栈【英文标题】:MagicalRecord: Remove entire data and setup core data stack again 【发布时间】:2012-09-10 00:31:37 【问题描述】:

对于每次应用更新,我想彻底擦除我的整个 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];

【问题讨论】:

【参考方案1】:

有一个NSPersistentStore+MagicalRecord 类别允许您获取持久存储的 URL:

+ (NSURL *) MR_urlForStoreName:(NSString *)storeFileName;

您可以使用此调用中的 URL 来使用 NSFileManager 删除持久存储 SQLite db。

【讨论】:

以上是关于MagicalRecord:删除整个数据并再次设置核心数据堆栈的主要内容,如果未能解决你的问题,请参考以下文章

MagicalRecord:后台导入数据,访问刚导入的数据

每次应用加载时,MagicalRecord 都会删除所有创建的对象

MagicalRecord:删除后保存上下文太长

MagicalRecord 调用多个保存方法

删除 MagicalRecord 中的实体不持久

删除两个实体之间的关系 MagicalRecord