Я новичок в использовании iPhone SDK и Objective C. У меня глупая проблема с объектом NSMutableArray
.
У меня есть класс Team
и класс Player
. Класс Team
имеет объект NSMutableArray
, который содержит объекты Player
. Класс Team
инициализируется конструктором initWithTitle:(NSString*)title
. Player
имеет Name
свойство.
Теперь у меня есть простое приложение на основе навигации с UITableViewController
, которое показывает строку с Add Player. Когда эта строка выбрана, она открывает UIViewController
с текстовым полем, в котором пользователь может ввести имя нового игрока (напр., Player1). При нажатии на кнопку «Назад» строка с новым именем игрока должна появиться над строкой «Добавить игрока». После добавления второго игрока (например, Player2), строки должны выглядеть следующим образом:
Player1
Player2
Добавить игрока
Я использую PlayerUpdatedDelegate
с методом
-(void)PlayerUpdated:(NSString*)playerName;
для перевода имени нового игрока обратно в UITableViewController
при нажатии кнопки «Назад». В этом методе я создаю новый Player
объект и добавляю к Team
используя [team.players addObject:player];
Проблема, с которой я сталкиваюсь, заключается в том, что после ввода имени игрока и нажатия кнопки «Назад» происходит сбой приложения, когда я пытаюсь получить доступ к имени игрока способом - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
, как показано ниже:
if (indexPath.row < [team.players count]) {
Player *player = [team.players objectAtIndex:indexPath.row];
[cell textLabel].text = [player name]; // This is the line that fails........
[player autorelease];
}
else {
[cell textLabel].text = @"Add New Player";
}
return cell;
Любая помощь будет принята с благодарностью.
Благодарю. Если вы хотите взглянуть на простое приложение, я загрузил его по адресу: http://www.box.net/shared/y4ct7carfr