在NSMutableArray中访问sprite会返回一个错误 - 简单的问题

时间:2010-02-25 01:49:57

标签: objective-c cocos2d-iphone

为什么这不起作用?

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

我收到错误:

请求memeber'contentSize',而不是结构或联合

如果我更改了代码:

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

然后没关系。

我尝试过施法:

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

但它也不起作用。

有没有办法在不创建精灵参考的情况下执行此操作?

2 个答案:

答案 0 :(得分:2)

我相信.比铸造更紧密。尝试

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

请参阅this table

答案 1 :(得分:2)

objectAtIndex:的返回类型为id,不是struct也不是union。如果您想使用强制转换,请尝试

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

否则,请使用临时变量。