2012-07-04 87 views
0

我正在使用核心數據併爲我的一個實體建立一對多的關係。我有兩個實體。 「團隊」和「玩家」我試圖爲團隊添加一個NSMutableSet玩家。核心數據NSMutable集

下面是我如何嘗試向球隊添加球員。

-(void)addPlayerButton { 

[_tempSet addObject:@""]; 

NSLog(@"number of cells in _tempSet is:%i",[_tempSet count]); 

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade]; 

} 

這是我如何保存

-(void)saveButtonWasPressed { 

self.team =[NSEntityDescription insertNewObjectForEntityForName:@"Team" inManagedObjectContext:self.managedObjectContext]; 

self.player = [NSEntityDescription insertNewObjectForEntityForName:@"Player" inManagedObjectContext:self.managedObjectContext]; 
[team addPlayersObject:player]; 

team.schoolName = _schoolName.text; 
team.teamName = _teamName.text; 
team.teamID = _teamName.text; 
team.season = _season.text; 
team.headCoach = _headCoach.text; 
team.astCoach = _assistantCoach.text; 

player.firstName = cell.playerFirstName.text; 
player.lastName = cell.playerLastName.text; 
player.number = cell.playerNumber.text; 

[self.team addPlayers:_tempSet]; 


[self.managedObjectContext save:nil]; 
[self.navigationController popViewControllerAnimated:YES];  

}

有兩個事情出錯,其一,_tempSet只增加了一個對象,不能再增加。第二次崩潰時,我點擊保存在行[self.team addPlayers:tempSet];錯誤[ _NSCFConstantString _isKindOfEntity:]:無法識別的選擇發送到實例0xd7cd8'

我是比較新的核心數據,所以請隨時糾正我,如果我在做別的事情錯了......

回答

0

在第一個功能你以後行

[_tempSet addObject:@""]; 

則:

[self.team addPlayers:_tempSet]; 

所以你添加一個NSString解放軍你們團隊的關係,當你需要添加一個Player實體時。 在第一個功能你可以試試:

Player *newPlayer = (Player *)[NSEntityDescription insertNewObjectForEntityForName:@"Player" 
inManagedObjectContext:managedObjectContext]; 
[_tempSet addObject:newPlayer]; 

但你可能還需要設置一些屬性的球員,不只是添加一個空的球員的球隊。

+0

嘿謝謝你的回覆,那真棒!所以是的,我需要添加三個屬性給玩家來自自定義單元格。名字,姓氏和號碼...所以在我的添加播放器功能,我可以只說cell.firstNameText.text = newPlayer.firstName等? – Luke

+0

是的,newPlayer.firstName = cell.FirstNameText.text。另外,請記住接受正確答案。 –

+0

會做..再次感謝。 – Luke