Доступ к спрайтам в NSMutableArray возвращает ошибку - простой вопрос - PullRequest
0 голосов
/ 25 февраля 2010

Почему это не работает?

// spriteArray is an NSMutableArray
int spriteWidth = [spriteArray objectAtIndex:0].contentSize.width;

Я получаю ошибку:

Запрос на член 'contentSize' в чем-то, что не является структурой или объединением

Если я изменю код:

CCSprite *tempSprite = [spriteArray objectAtIndex:0];
int spriteWidth = tempSprite.contentSize.width;

Тогда все в порядке.

Я пробовал кастовать:

int spriteWidth = (CCSprite*)[spriteArray objectAtIndex:0].contentSize.width;

Но это тоже не работает.

Есть ли способ сделать это без создания ссылки на спрайт?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2010

Тип возврата objectAtIndex: - id, который не является ни struct, ни union.Если вы хотите использовать приведение, попробуйте

((CCSprite*)[spriteArray objectAtIndex:0]).contentSize.width

В противном случае используйте временную переменную.

2 голосов
/ 25 февраля 2010

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

int spriteWidth = ((CCSprite*)[spriteArray objectAtIndex:0]).contentSize.width;

См. эту таблицу .

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