私は現在objective-Cを使用して既に開発されているIOSアプリケーションを開発中です。 ユーザーのログイン情報がユーザーの詳細を格納するモジュールを追加しました。しかし、アプリケーションがすでにコードを持っているので、ログアウトボタンを押すと、データベースからすべてのエンティティが削除されます。これのために、彼らは以下のようなコードを使用しています。persistentStoreCoordinatorを使用して選択したテーブルを削除する方法
NSManagedObjectContext * managedObjectContext = [self managedObjectContext];ブレークポイントを保つことによって
NSError *error = nil;
// retrieve the store URL
NSURL *storeURL = [[managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]];
// lock the current context
[managedObjectContext lock];
[managedObjectContext reset];//to drop pending changes
//delete the store from the current managedObjectContext
if ([[managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error]){
// remove the file containing the data
[[NSFileManager defaultManager] removeItemAtURL:storeURL error:&error];
//recreate the store like in the appDelegate method
[[managedObjectContext persistentStoreCoordinator] addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];//recreates the persistent store
}
[managedObjectContext unlock];
、私は彼らがデータベースのURLを取得し、それを削除し、それを再作成していることを理解していました。彼らは3つのテーブルA、BとCを持っていると言いましょう、A & Bを削除したいですが、Cはありません。
私の理解は正しいですか?どうすればこれを達成できますか?
TIA
上記のコード(質問)では、それらは単にデータベース全体を削除して再作成していますか?あなたの答えでは、 'deleteObject:entityOBJ'ではないでしょうか? – ASN
はい修正しました。 –
改変していただきありがとうございます。しかし、C以外のすべてのエンティティ(この場合はA&B)を削除するにはどうすればよいですか? – ASN