我有2個實體:用戶,地址。 我已經設置了關係,每個用戶可以有許多「地址」。 我不知道核心數據如何工作,但從我的理解,每次我調用insertEntityForName它創建並存儲一個對象。 (也是表中的一行)iPhone - 核心數據問題?
所以問題: 以下代碼是否不在覈心數據中存儲重複地址?
- 當我插入用於用戶實體它 還插入一個地址
- 當我調用insert爲地址 實體它創建另一個地址。
如果我是正確的,這實際上在數據庫中創建一個副本是什麼方法來防止它?
User *user = [NSEntityDescription insertEntityForName:@"User"
inManagedObjectContext:self.managedObjectContext];
user.firstName = @"first name";
user.lastName = @"last name";
Address *address = [NSEntityDescription insertEntityForName:@"Address"
inManagedObjectContext:self.managedObjectContext];
address.street = @"street";
user.address = address;
非常感謝,很好的回答。 1我需要創建「addAddressObject」方法嗎?或者它是由NSManagedObject創建的?我得到「可能不會迴應」addAddressObject「 – aryaxt 2010-10-17 00:21:48
它創建時創建NSManagedObject子類,我假設你知道如何做,因爲你使用的類稱爲」用戶「和」地址「。你可能會想要重新創建這些類如果你在模型中對它們進行了更改 – 2010-10-17 00:26:54
另外,我的意思是在答案中提到這一點,但我會在此補充一點,你並不是真的想把核心數據看作是具有表格和行的數據庫。有一些相似之處,Core Data甚至可以使用數據庫來存儲數據,但我認爲差異很大。 – 2010-10-17 00:30:25