核心数据在删除实体的对象时也会删除所有关系对象

时间:2013-07-05 13:09:21

标签: ios core-data nsmanagedobjectcontext

在核心数据中,删除实体的对象时,所有关系对象都会被删除 还有一个具有一对多关系的另一个实体细节。我是否需要删除其对象或以下代码来处理它? 我的代码到目前为止:

 NSFetchRequest * allClients = [[NSFetchRequest alloc] init];
[allClients setEntity:[NSEntityDescription entityForName:@"Client" inManagedObjectContext:[NSManagedObjectContext defaultContext]]];
[allClients setIncludesPropertyValues:NO]; //only fetch the managedObjectID

NSError * error = nil;
NSArray * clients = [[NSManagedObjectContext defaultContext] executeFetchRequest:allClients error:&error];
//error handling goes here
for (NSManagedObject * client in clients) {
    [[NSManagedObjectContext defaultContext] deleteObject:client];
}

NSError *saveError = nil;
[[NSManagedObjectContext defaultContext] save:&saveError];
//more error handling here

1 个答案:

答案 0 :(得分:0)

这取决于您配置的设置。对于每种关系,您可以将其设置为:

  1. 什么都不做
  2. 级联(也删除其他项目)
  3. 抵消
  4. 拒绝(不允许删除)
  5. 您可以为模型中的每个关系指定此值(以及每个关系的两端)。