Запрос на членство в чем-то не структура или союз - PullRequest
1 голос
/ 16 мая 2011

Вот некоторый фон моей программы: [self.channels] - это массив Channel объектов. Каждый объект Channel имеет синтезированную строку с именем channelId.

компилировать

Channel *channel = [self.channels objectAtIndex:indexPath.row];
NSString *channelId = channel.channelId;

Не компилируется

NSString *channelId = [self.channels objectAtIndex:indexPath.row].channelId;
// Request for member 'channelId' in something not a structure or union

Почему я не могу связать свои команды, чтобы получить свойство channelId? Две версии моего кода выглядят одинаково ...

1 Ответ

3 голосов
/ 16 мая 2011

В вашей первой версии компилятор знает, с каким типом объекта вы работаете, поскольку он использует переменную Channel * для ссылки на элемент данных.Во второй версии компилятор знает только, что NSObject может быть возвращен, но не знает, что возвращаемый объект будет определенного класса.Вы можете изменить это, приведя возвращенное значение:

NSString *channelId = ((Channel*)[self.channels objectAtIndex:indexPath.row]).channelId;

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