4

アプリを更新するたびに、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];
4

1 に答える 1

4

NSPersistentStore+MagicalRecord永続ストアの URL を取得できるカテゴリがあります。

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

この呼び出しの URL を使用して、NSFileManager を使用して永続ストア SQLite db を削除できます。

于 2012-09-10T02:37:28.200 に答える