核心数据NSMutable集

时间:2012-07-04 16:54:52

标签: core-data one-to-many entities

我正在使用核心数据并为我的某个实体建立一对多的关系。我有两个实体。 “团队”和“玩家”我试图向团队添加一个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'

我对核心数据比较陌生,所以如果我做错其他的话,请随时纠正我......

1 个答案:

答案 0 :(得分:0)

在第一个功能中,你有

[_tempSet addObject:@""];

然后:

[self.team addPlayers:_tempSet];

因此,当您需要添加一个Player实体时,您可以将NSString添加到团队的玩家关系中。 在第一个函数中尝试类似:

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

但您可能还想为玩家设置一些属性,而不仅仅是为团队添加一个空玩家。