2013-04-29 4 views
0

Я пытаюсь сделать представление таблицы, используя следующий массив и объекты.tableview NSInvalidArgumentException и я не знаю, почему

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"]; 
    characterArray = [[NSMutableArray alloc] init]; 

    character * Choice = [[character alloc] init]; 

    Choice.name = @"creat new character"; 
    [characterArray addObject:Choice]; 

    character * secondChoice = [[character alloc]init]; 
    secondChoice.name = @"paliden"; 
    [characterArray addObject:secondChoice]; 
} 

Но я продолжаю получать NSInvalidArgumentException, причина: -[character isEqualToString:]

Я понял, что проблема здесь в cellForRowAtIndexPath

cell.textLabel.text = [characterArray objectAtIndex:indexPath.row]; 

Я не могу понять, что я делать неправильно, и пока я не внес несколько изменений в массив, код работал нормально. Любые предложения будут полезны.

+0

in cellForRowAtIndexPath снова у вас должно получиться имя, поэтому создайте Character * choice = (Character *) [characterArray objectAtIndex: indexPath.row]; затем cell.textLabel.text = choice.name; попробуй это – krishh

ответ

2

вы должны указать строку как текст cell.textLabel.text. В вашем коде вы просто передаете свой объект cell.textLabel.text, который является неправильным. нарисуйте [characterArray objectAtIndex: indexPath.row] на (символ *), затем вызовите имя., которое вернет строку. дать эту строку в качестве входного cell.textLabel.text

попробовать это,

cell.textLabel.text = ((character *)[characterArray objectAtIndex:indexPath.row]).name; 
0

В cellForRowAtIndexPath получить имя от персонажа создать

Character *choice=(Character *)[characterArray objectAtIndex:indexPath.row]; затем

cell.textLabel.text =choice.name;

попробуйте эту надежду поможет

Смежные вопросы