2

我很难建立一对一的关系。在最高级别,我有一对多的关系。我将使用典型的经理、员工等示例来解释我正在尝试做的事情。为了更进一步,我正在尝试为员工添加一对一的众议院关系。

当我对 NSManagedObject 进行子类化时为我创建的 addEmployeesToManagereObject 方法,我添加的员工没有问题。当我在我的表视图中选择一个员工时,我设置了 Employee 类型的 currentEmployee - 它在我的 .h 中声明。

现在我有了那个当前员工,我想保存与当前员工相关的 Houses 实体属性。

我真正苦苦挣扎的部分是设置 managedObjectContext 以及设置和保存与 currentEmployee 相关的房屋属性。

我已经尝试了几件事,但这是我的最后一次尝试:

注意:employeeToHouse 是一个 House 类型的属性,它是在我继承 NSManagedObject 时为我创建的

House *theHouse = [NSEntityDescription 
                   insertNewObjectForEntityForName:@"House"
                   inManagedObjectContext:self.managedObjectContext];
// This is where I'm lost, trying to set the House
// object through the employeeToHouse relationship
self.currentEmployee.employeeToHouse

如何访问和保存房屋属性到 currentEmployee?

4

1 回答 1

2

由于 House 设置为实体,因此可以将其视为数据存储中的表。如果确实如此,您需要在数据模型中设置 Employee 和 House 之间的一对一关系。

如果您已经这样做了,那么它就像调用一样简单。尽管我对 Core Data 的一对一关系不如我对多对多的熟悉。无论哪种情况,请尝试以下方法之一

[self.currentEmployee addHouseObject: theHouse];

或者

self.currentEmployee.employeeToHouse=theHouse;

然后保存到 managedObjectContext:

NSError *error=nil;
if (![self.managedObjectContext save:&error]{

    NSLog(@"Core Data Save Error:  %@", error);
}

另外,我不确定您的具体情况,但是您的 self.managedObjectContext 应该已经与 self.currentEmployee.managedObjectContext 所指向的相同。

祝你好运,

蒂姆

于 2012-05-04T15:13:02.657 回答