_cmd value inside C functions
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.
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__);