2016-09-06 48 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