Заполнение TableView с помощью NSMutableSet
Я использую основные данные и пытаюсь заполнить UITableView
с NSMutableSet
, У меня есть две сущности: команды и игроки. На моем addTeamsController
Я сохраняю игрока в команду следующим образом
-(void)saveButtonWasPressed {
self.team =[NSEntityDescription insertNewObjectForEntityForName:@"Team" inManagedObjectContext:self.managedObjectContext];
Player *newPlayer = (Player *)[NSEntityDescription insertNewObjectForEntityForName:@"Player"
inManagedObjectContext:self.managedObjectContext];
team.schoolName = _schoolName.text;
team.teamName = _teamName.text;
team.teamID = _teamName.text;
team.season = _season.text;
team.headCoach = _headCoach.text;
team.astCoach = _assistantCoach.text;
[self.team addPlayers:_tempSet];
[self.managedObjectContext save:nil];
[self.navigationController popViewControllerAnimated:YES];
}
На другом viewController я пытаюсь заполнить табличное представление этими игроками команд. Для этого я делаю следующее
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
_array = [[_team.players allObjects] sortedArrayUsingDescriptors:sortDescriptors];
а затем в моей ячейке для пути строки и индекса я делаю следующее
cell.textLabel.text = [_array objectAtIndex:indexPath.row];
И я получаю ошибку
[Player isEqualToString:]: unrecognized selector sent to instance
Мне интересно, каков наилучший подход к заполнению таблицы, отсортированной по именам игроков.
1 ответ
Лучший способ заполнить таблицу из основного хранилища данных - это использовать NSFetchedResultController
, Но это не решит проблему, с которой вы столкнулись, проблема в том, что вы пытаетесь установить cell.textLabel.text
для NSManagedObject
, который не работает. Вы можете установить
cell.textLabel.text = Player.someStringAttribute