sourceObject和destinationObject都是SameClass的實例。 SameClass是一個Singleton。基本上相同的對象通過兩個不同的名稱,並在方法級別具有不同的行爲。我有幾行代碼: (這裏有一個對稱的,我需要他們調用相同的方法,但在兩種不同情況下的兩個不同位置)NSInvocation - 如何確定郵件的內容來自forwardInvocation:
//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或其他一些技術決定我應該在哪裏轉發消息。編輯該問題請參閱編輯以獲取更多詳細信息。
您是否試圖讓發件人提前或轉發? – CodaFi
Singleton向自己發送消息,他既是發送者又是接收者。他一直這樣做,直到找到一種他不明白的方法,在這種情況下,他會將消息轉發給另一個對象。我在代碼中的位置,主要由singleton1Object和singleton2bject確定,它提供了我應該在哪裏轉發消息的線索。編輯該問題請參閱編輯以獲取更多詳細信息。 – unmircea
我建議改變你的設計,而不是試圖解決這個混亂的道路。一個對象用_兩個不同的名稱來引用自己,這兩個對我來說都不是「自我」;這意味着你可能不應該有一個單例,而是一個類的兩個實例,或者甚至可能是兩個單獨的派生類。 –