将Cocos2d代码转换为ARC问题

时间:2013-10-27 19:08:45

标签: cocos2d-iphone automatic-ref-counting box2d-iphone

我正在尝试ARC启用项目,在为ARC选择文件时遇到了一些问题。

在Ball类中,以下行

ballBody->SetUserData(self);

给出错误,

Cannot initialize a parameter of type 'void *' with an Ivalue of type 'Ball *const__strong'

在Enemy.mm类中,以下行

enemyBody->SetUserData(enemySprite);

给出错误,

Cannot initialize a parameter of type 'void *' with an Ivalue of type 'CCPhysicsSprite*__strong'

在Enemy.h中,我将上述内容定义为:

b2Body* enemyBody;
CCPhysicsSprite* enemySprite; (in Enemy.m)

我该如何解决这些问题?

1 个答案:

答案 0 :(得分:2)

桥梁铸造:

ballBody->SetUserData((__bridge void*)self);
enemyBody->SetUserData((__bridge void*)enemySprite);

反之亦然:

CCPhysicsSprite* enemySprite = (__bridge CCPhysicsSprite*)enemyBody->GetUserData();