2012-07-04 62 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