在 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
. 到目前为止,我还没有运气。