Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 453
Michael57 Avatar asked Jan 01 '26 05:01

Michael57


1 Answers

_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]
like image 163
justin Avatar answered Jan 02 '26 17:01

justin