2012-05-04 19 views
2

我很難與一對一的關係。在最高層,我有一對多的關係。我會用典型的經理,員工,榜樣來解釋我想要做的事情。爲了更進一步,我試圖爲僱員添加一對一的房子關係。如何保存與核心數據中的另一個對象相關的對象?

我有僱員被添加沒有問題,當我subclassed NSManagedObject爲我創建addEmployeesToManagereObject方法。當我在我的表格視圖中選擇一個員工時,我設置了Employee類型的當前僱員 - 這是在我的.h中聲明的。

既然我有當前員工,我想保存與當前員工相關的房屋實體屬性。

我真的很努力的一部分是設置managedObjectContext並設置和保存關於currentEmployee的房屋屬性。

我已經試過幾件事情,但這裏是我的最後一次嘗試:

注意:employeeToHouse是,是爲 當我子類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 
創造了我型房子的屬性

如何訪問並將房屋屬性保存到當前員工?

回答

2

由於House被設置爲實體,因此可以將其視爲數據存儲內的表。如果確實如此,則需要在數據模型中設置Employee和House之間的1對1關係。

如果您已經這樣做,那麼它就像調用一樣簡單。儘管我並不熟悉Core Data與One-to-One的關係,因爲我與To-many有着一對一的關係。在任何情況下,請嘗試以下

[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指向的一樣了。

祝你好運,

+0

感謝您的幫助,你的絕對正確的managedobjectcontext。我確實在員工和房子之間創建了反向關係,但由於某種原因xcode沒有在我的子類文件中生成addHouseObject方法,就像我在經理和員工之間建立了一對多關係一樣。在我的Employee.h中,我看到的唯一參考是爲我創建的屬性:@property(nonatomic,strong)House * employeeToHouse。我認爲必須有一種方法來通過爲我創建的財產拯救房屋。但不知道。 – MikeTheCoder

+0

@MikeTheCoder,看到我編輯的回覆。 – timthetoolman

相關問題