Obj-C内省:方法如何引用自己的选择器?

时间:2011-12-08 13:10:34

标签: objective-c methods selector introspection

我希望编写一个宏,在任何引用方法选择器的方法中使用。我不希望传递方法的文字名称。例如:

#define RERUN [self performSelector:{something} withObject:nil afterDelay: 0.0]

上面的“{something}”将解析为使用宏的方法的选择器。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

_cmd表示当前方法的选择器 - 它是隐藏的参数(如self)。

如果您从不需要参数,或nil适合您的目的 - 您需要做的就是写:

#define RERUN [self performSelector:_cmd]

答案 1 :(得分:1)

方法获得一个隐式参数_cmd,它是选择器。