В 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
Пока что мне не повезло.