- [__ NSCFString objectForKey:]: нераспознанный селектор отправлен на экземпляр - PullRequest
0 голосов
/ 09 января 2012
// Configure the cell.
cell.textLabel.text = [[self.drinks objectAtIndex:indexPath.row] objectForKey:@"Name"];
return cell;

Приведенный выше код генерирует это исключение.Что может быть причиной этого и как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Я понимаю из вашего вопроса

У вас есть множество напитков, таких как

Drink *d1 = [[Drink alloc] init]
d1.name = @"Drink1";
d1.price = [NSNumber numberWithFloat:25.0];

Drink *d2 = [[Drink alloc] init]
d2.name = @"Drink2";
d2.price = [NSNumber numberWithFloat:35.0];

ИЛИ

NSArray *values1 = [NSArray arrayWithObjects:@"Drink1",[NSNumber numberWithFloat:25.0], nil];
    NSArray *keys1 = [NSArray arrayWithObjects:@"Name",@"price", nil];
    NSDictionary *d1 = [[NSDictionary alloc] initWithObjects:values1 forKeys:keys1];

    NSArray *values2 = [NSArray arrayWithObjects:@"Drink2",[NSNumber numberWithFloat:55.0], nil];
    NSArray *keys2 = [NSArray arrayWithObjects:@"Name",@"price", nil];
    NSDictionary *d2 = [[NSDictionary alloc] initWithObjects:values1 forKeys:keys1];


self.drinks = [NSArray arrayWithObjects:d1,d2, nil];
[d1 release];
[d2 release];

Из приведенного выше случая

cell.textLabel.text = [[self.drinks objectAtIndex:indexPath.row] objectForKey:@"Name"];

вышеприведенное утверждение верно

Вы получаете средство исключения, Вы вставляете объекты в массив напитков, который поддерживает данные Key Value Pairs и который является String Data.

Я надеюсь, что выимея такой

self.drinks = [NSArray arrayWithObjects:@"Drink1",@"Drink2", nil];

В этом случае вы должны перейти с

cell.textLabel.text = [self.drinks objectAtIndex:indexPath.row];
0 голосов
/ 09 января 2012

сначала попытайтесь определить, какой объект является self.drinks,

, затем вы можете пойти лучше, если массив со словарями?

сделать журнал

[self.drinks objectAtIndex: 0]

что вы видите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...