我有這樣一個模型:iOS的核心數據如何從不同的實體訪問單一實體
如何讓這個「文件」的實體可以通過ENTITY1或ENTITY2引用(或項目)
基本上我有一些「文件」與ID的。如果對「文件」進行更改(例如更改名稱),則當任何實體引用該文件時,它應該具有更新的信息...而不必在每個實體中進行更新。
有沒有辦法從編輯器做到這一點?或者,我必須編寫代碼才能首先獲取我正在查找的文件ID,然後一旦有了文件ID,就使用我剛剛獲得的ID爲「文件」實體單獨請求?
在sql中,我可以只是從任何表進行左連接。如果可以在謂詞中做,那也可以,但不知道如何。
編輯:
所以我更新我的模型,現在它看起來像這樣:
我添加數據的 「文件」,然後添加數據ENTITY1和ENTITY2
我有用於顯示文件的代碼,然後顯示實體的代碼。 下面是我在做什麼的一個片段:
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Entity1" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error;
NSArray *entityArray = [context executeFetchRequest:request error:&error];
[entityArray enumerateObjectsUsingBlock:^(Entity1 *entity1, NSUInteger idx, BOOL *stop) {
NSLog(@"entity1: %@", entity1.name);
}];
我現在該如何從文件中得到「名」的ENTITY1?讓我們假裝名稱字段是一個匹配的字段。我需要添加哪些代碼才能拉取「文件」?這是假設「文件」在「Entity1」之前在那裏。
我目前正在運行另一種類似於「getFileByName:(NSString *)name」的方法,並使用謂詞做單獨的請求。這有效,但我認爲有一個更好的方法。
你是什麼「的意思,使‘文件’實體可以被引用實體1,實體2或物品'? –
我想如果我與Entity1的文件建立關係,那麼我將無法從entity2訪問相同的文件。我會嘗試丹的回答,看看它是否有效。感謝您檢查了這一點。 – Amos
你的編輯完全是另一個問題。考慮重新發佈一個。 –