'struct objc_object' не имеет члена с именем 'position' - PullRequest
0 голосов
/ 08 июля 2011

Итак, у меня есть этот класс, называемый Cell, который является подклассом CCSprite, тогда у меня есть три других подкласса Cell.

В одном из подклассов я переопределяю метод с именем addCellToCell в классе Cell:

-(void)addCellToCell:(id)_cell;

И я пытаюсь сделать это:

    self = [CCSprite spriteWithFile:@"Jet.png"];
    [self setPosition:ccp(_cell.position.x+5, _cell.position.y)];

Где я пытаюсь установить позицию объекта self (которая, поскольку он наследуется от Cell, делает его по существу модифицированным CCSprite) относительно другого объекта подкласса Cell (потенциально от любого из трех подклассов).

Но когда я делаю это, я получаю ошибку:

запрос на член 'position' в '_cell', который имеет неклассный тип 'objc_object *'

Также предлагается использовать «->» вместо «.» поэтому я изменил это на:

'struct objc_object' не имеет члена по имени «должность»

Извините, если это сбивает с толку ... Пожалуйста, попросите разъяснений, если они вам нужны. Как я могу исправить эти ошибки?

Определение класса ячейки:

@interface Cell : CCSprite {
}

-(void)addToCell:(id)_cell;

@end

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Приведите его к объекту Cell перед его использованием,

Cell aCell = (Cell *)_cell;

, а затем

[self setPosition:ccp(aCell.position.x+5, aCell.position.y)];
0 голосов
/ 08 июля 2011

Просто изменить

-(void)addCellToCell:(id)_cell;

до

-(void)addCellToCell:(Cell*)_cell;

Не используйте id , если в этом нет крайней необходимости. Всегда используйте ClassName*.

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