use*_*291 7 reflection objective-c ios
据我所知,Objective C是一种比C#或Java更动态的语言.在C#中,您只能知道调用者对象的类(使用stacktrace),而不知道调用者本身的实例引用.
Objective C对此更有能力吗?
更新:我在这里查看了另一篇文章如何在Objective-C中确定我的方法的"调用者"?.据我所知,它只给出了类名.我坚持认为我只对类名不感兴趣,而是通过获取调用者实例本身的引用.
这已在这里得到解答:
答案并不是特别漂亮.看起来没有简单,可靠的方法来执行它,除了搜索堆栈,这可能是操作系统版本或平台依赖.
你为什么要这么做?也许你的问题有另一个解决方案.
据我所知,你甚至无法得到来电者的班级.Objective-C中的所有方法调用都被路由objc_msgSend(),它将接收器,选择器和方法的参数作为参数.
接收器将是self和选择器_cmd.调用者不参与方法调用.您只能返回堆栈跟踪以了解方法的调用位置.
| 归档时间: |
|
| 查看次数: |
5109 次 |
| 最近记录: |