2011-06-26 4 views
1

をクリア、私は、次の質問を参照しています:起動時に時々Delete/Reset all entries in Core Data?は、コアデータ

、私は私のコアデータのデータベースをクリアし、すべての上に再びそれを再ダウンロードしたいと思います。私はコアデータを使い始めているので、私はコアデータの初心者です。

1)の答えは示しています

NSPersistentStore *store = ...; 

はどうやってNSPersistentStoreになるだろうか? My App DelegateはNSPersistentStoreを参照せず、NSStorePersistentCoordinatorのみを参照します。

2)私は答えを次のように実行した後にスタックを再構築する予定ですか?

NSPersistentStore *store = ...; 
NSError *error; 
NSURL *storeURL = store.URL; 
NSPersistentStoreCoordinator *storeCoordinator = ...; 
[storeCoordinator removePersistentStore:store error:&error]; 
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error]; 

もしそうなら、スタックをどのように再構築しますか?これを行うための関数を呼び出すことはできますか?

おかげで、

答えて

1

あなたがNSPersistentStoreを使用したいのはなぜ?そのポストのせいで?はいの場合は、 `NSManagedObjectと一緒に行くことをお勧めします。フェッチ要求によってすべてのコアデータを単純に削除してからforループを実行するだけで済みます。その古い承認は、初心者のために理解しやすいです。これはあなたを助けるかもしれません:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = 
[NSEntityDescription entityForName:entityDescription inManagedObjectContext:managedObjectContext]; 

[fetchRequest setEntity:entity]; 

NSError *error; 
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
[fetchRequest release]; 


for (NSManagedObject *managedObject in items) { 
    [managedObjectContext deleteObject:managedObject]; 

} 
if (![managedObjectContext save:&error]) { 

} 

ハッピーコーディング..!