If I have a call from within a random class like this:
@implementation SomeClass
- (void) classMethodFoo
{
int a = [SomeSingleton sharedInstance].aValue;
}
@end
Inside SomeSingleton sharedInstance
, is there a way to get a reference to the object which called this method (without the called passing self as a parameter of course)?
No, information about the caller isn't passed along automatically.
This is why IBAction
methods, for instance, have a sender
parameter, and why delegate methods often have a parameter that refers to the delegate's object.
来源:https://stackoverflow.com/questions/6120258/get-the-object-which-called-a-method