sourceObject和destinationObject都是SameClass的实例。 SameClass是一个Singleton。基本上相同的对象有两个不同的名称,并且在方法级别具有基于此不同的行为。我有这些代码行: (这里有一个对称,我需要它们调用相同的方法,但在两个不同的情况下在两个不同的地方)
//some code in some place
[singleton1Object increase: 20];
//some code in a completely different place
[singleton2Object increase: 40];
singleton1Object或singleton2Object都没有实现增加:相反,它们都使用它来指示每个方向(其他对象)的消息
forwardInvocation
- (void)forwardInvocation:(NSInvocation *)anInvocation
{
//determine where the message came from
}
有没有办法确定最初收到的代码singleton1Object或singleton2Object的哪一部分会增加:并根据forwardInvocation内部决定路由的位置:?
注意:Singleton向自己发送消息,他既是发送者又是接收者。他通过代码中的两个或多个名称来引用自己,存储在其中的两个变量中,他一直这样做,直到它从一个方法到另一个方法,他不知道在哪种情况下他将消息转发给另一个对象。我在代码中的位置,主要由singleton1Object和singleton2Object决定,或者其他一些技术有我转发消息的线索。编辑了问题,请参阅编辑以获取更多详细信息。
答案 0 :(得分:0)
在forwardInvocation
中,self
是邮件的接收者。
调用对象不包含有关邮件的初始发件人的信息。