在創建Core Data實體(Event)期間,我創建了與另一個實體(Team)的關係。這種關係從團隊到事件(一個團隊,許多事件)是多對一的,並且事件與團隊之間存在反向關係。如何創建從一個實體到另一個實體的核心數據關係?
團隊< ----- >>事件。
兩個關係的刪除規則都設置爲'Nullify'。
當在創建每個事件期間創建新團隊時,下面的代碼塊可成功地在第一羣體上成功運行。但是,如果我然後刪除了一個事件並嘗試重新添加該事件,則會檢索現有的團隊,但在嘗試將Team對象添加到該示例最後一行中的事件時代碼失敗。錯誤如下:-[__NSCFDictionary managedObjectContext]: unrecognized selector sent to instance 0x699ed60
在事件對象與已存在的Team對象之間創建關係的正確方法是什麼?
Team *currentTeam = self.team;
Team *newTeam = (Team *)[self loadTeamForNid:[NSNumber numberWithInteger: [teamNid integerValue]]];
// If the nid of the referenced team has changed,
if (![[[currentTeam nid] stringValue] isEqualToString:teamNid]) {
currentTeam = nil;
currentTeam = newTeam;
}
// If an event has not been set by this point, it does not exist in the CD store, and we need to create it.
if (currentTeam == nil) {
currentTeam = (Team *)[NSEntityDescription insertNewObjectForEntityForName:@"Team" inManagedObjectContext:[delegate managedObjectContext]];
[currentTeam populateTeamWithNode:[node nodeGet:teamNid]];
}
// TODO: This breaks on reload of an object
// self.team = currentTeam;
[self setValue:currentTeam forKey:@"team"];
什麼是錯誤?這種關係是否相反?刪除規則是什麼? – benzado
@Benzado:我已經更新了這個問題以包含這些細節。 – markdorison