【发布时间】:2011-02-13 03:43:02
【问题描述】:
我有一个Person 实体,它属于一对多关系中的Department。
我希望能够在没有更多与之关联的Persons 时删除Department(通过删除Person 实体或更改Person 的@ 987654327@ 属性)。现在,我正在尝试使用NSManagedObjectContextObjectsDidChangeNotification 的以下处理程序来执行此操作(目前只是尝试查看删除,并适当地删除):
- (void)managedObjectDidChange:(NSNotification *)notification {
NSSet *updatedObjects = [[notification userInfo] objectForKey:NSDeletedObjectsKey];
for (NSManagedObject *obj in updatedObjects) {
if ([obj.entity.name isEqualToString:@"Person"]) {
NSLog(@"Person Changed");
NSManagedObject *department = [(Person *)obj department];
NSLog(@"%i", [[department valueForKey:@"person"] count]);
if ([[department] valueForKey:@"person"] count] == 0) {
NSLog(@"Department has no more people associated with it");
// deletion code
}
}
}
}
但是,当我删除一个人时,与部门关联的人数并没有改变。我没有在 Department 实体上执行提取。这是我应该做的事情吗?
【问题讨论】:
-
删除
Person对象后是否保存上下文? -
是的,我删除了
Person,保存了上下文,当我将NSLog与Person关联的Personobjects 的计数与Department关联时,什么都没有改变。
标签: cocoa cocoa-touch core-data nsmanagedobject nsmanagedobjectcontext