我有一个与核心数据有关的问题,以及在为某个实体创建 NSManagedObject 子类时自动创建的删除对象函数。我必须实体;一个称为标签,一个称为艺术家的关系,另一个称为艺术家的实体,它有一个称为标签的关系。艺术家关系目的地是具有设置为标签的反向关系的实体艺术家。
我添加了几个同名的“艺术家”(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”时,艺术家才会被删除。但是,当我再次运行该应用程序时,fetchedObjects 中的对象数量仍然是一个。如果我有多个“Freekey Zekey”,我希望只删除一个,但它不会发生。
我尝试使用此代码删除所有“Freekey Zekey”
for(int i=0; i < [fetchedObjects count]; i++)
{
freekey = [fetchedObjects objectAtIndex:i];
[freekey.label remove ArtistsObject:freekey];
}
它可以工作,但是当我检查 fetchedObjects 中的对象数量时,它不是 0,我相信这意味着对象尚未被删除。
我怎样才能完全删除一个对象?