Objective-Cでは、静的c関数のスコープ内からインスタンス変数とメソッドにアクセスできますか?私が見落としているのはおそらくこれに対する簡単な答えがあるように感じますが、私はまだこの言語にかなり慣れていません。
次の簡略化されたコードを検討してください。
@implementation MyObject
static int ammoHitSensor(cpArbiter *arb, cpSpace *space, void *unused)
{
// Call an instance method - doesn't work, self is undefined!
[self doSomethingElse];
}
-(id)init
{
// Code to create graphics, etc, hidden for clarity
// Adding a collision handler in the Chipmunk physics library
cpSpaceAddCollisionHandler(space, COL_TYPE_AMMO, COL_TYPE_SENSOR, ammoHitSensor, NULL, NULL, NULL, NULL);
}
-(void)doSomethingElse
{
// Stuff happens
}
@end
したがって、のスコープに入るとammoHitSensor
、のスコープに戻る方法があることを期待していますMyObject
。これまでのところ、私は運がありませんでした。