1

如何獲取包含在'NSInvocation中的消息發件人?獲取NSInvocation消息的發件人

我在一個對象中,並且剛收到我的forwardInvocation:中的一個調用。 有沒有什麼辦法可以知道是誰給我的信息?

+1

你可能無法得到「發件人」作爲一個對象,但它在理論上是可能獲取調用功能,這應該是在棧上的某個地方,或在鏈接寄存器。雖然95%的應用程序可能沒有用。 –

+0

嗯......那個函數看起來像什麼東西,是一般的東西還是我可以從中提取關於發送者的一些信息。 – unmircea

+0

您可以使用NSThread的'callStackSymbols'作爲起點。 –

回答

1

否。有關發件人的信息不可用(除非明確添加sender:self參數)。

又見這個線程http://www.cocoabuilder.com/archive/cocoa/194746-is-the-sender-of-an-obj-method-implied-in-the-destination-method.html

它沒有明確使用,也不能放鬆一貫的 堆棧弄明白。也沒有保證 「發件人」真的是一些Objective-C對象;在各種語言橋的情況下,它可以很容易地成爲函數或FFI產生的閉包。

b.bum

+0

鏈接非常豐富。謝謝! – unmircea