特定のエンティティに対してNSManagedObjectサブクラスが作成されたときに自動的に作成されるCoreDataとオブジェクトの削除機能に関する質問があります。私は実体を持たなければなりません。1つはLabelと呼ばれ、1つの関係はartistsと呼ばれ、もう1つのエンティティはArtistと呼ばれ、1つの関係はlabelと呼ばれます。アーティストリレーションシップの宛先は、ラベルに逆リレーションシップが設定されたエンティティArtistです。
同じ名前の「Artist」(Freekey Zekey)をいくつか追加し、次のコードを使用してそれらを削除しようとしています
NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
// Grab the artist and delete
Artist *freekey = [fetchedObjects objectAtIndex:0];
[freekey.label remove ArtistsObject:freekey];
// Save everything
if([context save:&error])
{
NSLog(@"The save was successful!");
}
else
{
NSLog(@"The save wasn't successful: %@", [error localizedDescription]);
}
このコードを実行した後、データを読み取りましたが、「Freekey Zekey」が1つしかない場合にのみ、アーティストが削除されます。ただし、アプリを再度実行すると、fetchedObjects内のオブジェクトの数は1のままです。「FreekeyZekey」が複数ある場合は、1つだけが削除されると思いますが、それは起こりません。
このコードを使用して、すべての「フリーキージーキー」を削除してみました
for(int i=0; i < [fetchedObjects count]; i++)
{
freekey = [fetchedObjects objectAtIndex:i];
[freekey.label remove ArtistsObject:freekey];
}
そしてそれは機能しますが、fetchedObjectsのオブジェクトの数を確認すると、0ではありません。これは、オブジェクトが削除されていないことを意味すると思います。
オブジェクトを完全に削除するにはどうすればよいですか?