1

プロジェクトを 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)

これらの問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

ブリッジキャスティング:

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

そしてその逆:

CCPhysicsSprite* enemySprite = (__bridge CCPhysicsSprite*)enemyBody->GetUserData();
于 2013-10-27T20:42:09.503 に答える