What's the value of _cmd
variable when I access it from C-style function's body?
Is it defined inside Objective-C methods only?
P.S. This question may originate from my non-understanding of what _cmd
is. I would greatly appreciate if someone provided me with a good explanation source.
The major use of the _cmd
function is to get the method name in which it is called.
The use of the _cmd with some other functions has been written below.
NSLog(@"<%@:%@:%d>", NSStringFromClass([self class]), NSStringFromSelector(_cmd), __LINE__);
Instead of above line you can also use PrettyFunction
NSLog(@"%s", __PRETTY_FUNCTION__);
It's for Objective-C methods only, so you can't access it. The first two parameters passed to all Objective-C methods are self
and _cmd
, then whatever other arguments the actual method takes. Since neither self
nor _cmd
are passed to regular C functions, you can't access them.
There's nothing particularly magic about either variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With