Obj-C introspection: How can a method reference its own selector?

僤鯓⒐⒋嵵緔 提交于 2019-12-18 08:58:56

问题


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?


回答1:


_cmd represents the selector of the current method -- it is a hidden argument (like self).

if you never need arguments, or nil is suitable for your purpose - all you need to do is write:

#define RERUN [self performSelector:_cmd]



回答2:


Methods get an implicit argument _cmd, which is the selector.



来源:https://stackoverflow.com/questions/8431498/obj-c-introspection-how-can-a-method-reference-its-own-selector

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!