Obj-C 内省:方法如何引用自己的选择器?
我希望编写一个宏,在任何方法中使用,它引用该方法的选择器。我不想传递方法的字面名称。例如:
#define RERUN [self performSelector:{something} withObject:nil afterDelay: 0.0]
上面的“{something}”将解析为使用宏的任何方法的选择器。
有什么方法可以做到这一点吗?
I wish to write a macro, to be used within any method, which references the method's selector. I do not wish to pass the literal name of the method. For example:
#define RERUN [self performSelector:{something} withObject:nil afterDelay: 0.0]
where the "{something}" in the above would resolve to the selector of whatever method the macro was used in.
Is there some way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
_cmd
表示当前方法的选择器——它是一个隐藏参数(如self
)。如果你从不需要参数,或者 nil 适合你的目的 - 你需要做的就是写:
_cmd
represents the selector of the current method -- it is a hidden argument (likeself
).if you never need arguments, or
nil
is suitable for your purpose - all you need to do is write:方法获取一个隐式参数 _cmd,它是选择器。
Methods get an implicit argument _cmd, which is the selector.