'struct objc_object'没有名为'position'的成员

时间:2011-07-08 04:52:54

标签: iphone objective-c cocos2d-iphone

所以我有一个名为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}子类化对象(可能来自三个子类中的任何一个)。

但是当我这样做时,我得到错误:

  

请求'_cell'中的成员'position',这是非类型'objc_object *'

它还建议我使用“ - >”代替 ”。”所以我改成它:

  

'struct objc_object'没有成员   命名为“职位”

很抱歉,如果它令人困惑...如果您需要,请询问任何澄清。我该如何解决这些错误?

Cell class的定义:

@interface Cell : CCSprite {
}

-(void)addToCell:(id)_cell;

@end

2 个答案:

答案 0 :(得分:1)

在使用它之前将其投射到Cell对象,

Cell aCell = (Cell *)_cell;

然后

[self setPosition:ccp(aCell.position.x+5, aCell.position.y)];

答案 1 :(得分:0)

只需更改

-(void)addCellToCell:(id)_cell;

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

除非绝对必要,否则请勿使用 id 请始终使用ClassName*