2016-09-06 22 views
0

是否有可能獲得id指針,該對象在函數中被調用的選擇器沒有發送者參數?Objective-c獲取被稱爲選擇器的對象

- (void)didSomeThing {//delegate method may call from any object 
//how to get sender = someObj? 
id sender = ?? 
} 
.... 
//calling 
[someObj didSomeThing]; 
... 
+0

這裏閱讀更多關於它可能是它在全球可以得到 –

+0

爲什麼該方法需要知道來電者? (這通常是一種糟糕的方式來設計的東西。) –

+0

我知道這是不好的,但我有一個錯誤的lib,我只有標題和許多代表選擇器。如何獲得選擇器稱爲類名稱? – AleyRobotics

回答

2

你不能找出誰是發件人。

每次你發送消息給對象編譯器將其轉換爲:

objc_msgSend(receiver, selector, arg1, arg2, ...) 

正如你可以看到這裏是沒有辦法,你可以找出是誰打來的方法,除了通過發件人爲參數。

可以在documentation