Objective c 确定单例方法的类';来电者

Objective c 确定单例方法的类';来电者,objective-c,singleton,Objective C,Singleton,我有一个单例对象(在目标C中,为了它的价值)。给定singleton中定义的任何特定方法,我可以确定调用它的对象的类吗?除了修改方法签名以要求传递调用方的实例之外(因为这样我就必须在调用方法的任何地方修改代码) 也就是说,给定来自myObj [[MySingleton instance] myMethod]; myMethod知道调用它的是myObj?我想避免(如果可以的话)不得不将代码更改为 [[MySingleton instance] myMethodCalledBy:self]; 简

我有一个单例对象(在目标C中,为了它的价值)。给定singleton中定义的任何特定方法,我可以确定调用它的对象的类吗?除了修改方法签名以要求传递调用方的实例之外(因为这样我就必须在调用方法的任何地方修改代码)

也就是说,给定来自
myObj

[[MySingleton instance] myMethod];
myMethod
知道调用它的是
myObj
?我想避免(如果可以的话)不得不将代码更改为

[[MySingleton instance] myMethodCalledBy:self];

简短回答:可能不会。长句回答:无论你想实现什么,都可以用一种完全不同的技术来实现。也许详细说明一下你真正想做什么?这在很多方面都很可怕;此委托接收来自singleton的消息。当类需要接收消息(在本例中是来自硬件设备的事件)时,它将单例的委托设置为自身。在某个地方,委托设置方法被调用,而委托被设置为nil。接下来是欢笑:-)我试图找出哪个类将委托设置为nil。在setDelegate:上设置断点,并使其以输入参数为
nil
为条件。有时[在我的特殊情况下]将委托设置为nil是可以的。问题是代码在一个意外的时间被调用,我试图找出“谁在做这件事”