2009-11-11 42 views
11

当我生成CoreData实体我的课我得到生成的方法CoreDataGeneratedAccessors - removeObject删除对象吗?

@interface Site (CoreDataGeneratedAccessors) 
- (void)addSearchesObject:(Search *)value; 
- (void)removeSearchesObject:(Search *)value; 
- (void)addSearches:(NSSet *)value; 
- (void)removeSearches:(NSSet *)value; 

@end 

所以我的问题是非常简单的,当我打电话removeSearchesObject:myObject的我一定要删除它吗?

[site removeSearchesObject:[[fetchedResultsController fetchedObjects] objectAtIndex:indexPath.section]]; 
     [context deleteObject:[[fetchedResultsController fetchedObjects] objectAtIndex:indexPath.section]]; 

这里是生成的代码(从doc

- (void)removeEmployeesObject:(Employee *)value 

{ 

    NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1]; 



    [self willChangeValueForKey:@"employees" 

      withSetMutation:NSKeyValueMinusSetMutation 

      usingObjects:changedObjects]; 

    [[self primitiveEmployees] removeObject:value]; 

    [self didChangeValueForKey:@"employees" 

      withSetMutation:NSKeyValueMinusSetMutation 

      usingObjects:changedObjects]; 



    [changedObjects release]; 

} 

回答

12

是的,如果你删除对象,你仍然需要将其删除。系统不知道你是否要将它重新连接到别的地方。另一方面,如果删除对象,只要模型中的删除规则设置为“Nullify”,它就会自行删除。欲了解更多信息,你应该检查删除规则documentation

+1

谢谢!这是我相信的 – Fsdn 2009-11-11 12:02:26