我有一个特殊的NSLog
方法 swizzle,它将当前方法打印为日志语句的一部分。
对于 Objective-C 方法,我有一个宏,它使用:NSStringFromSelector(_cmd)
对于非 Objective-C 方法,我有第二个宏使用,__PRETTY_FUNCTION__
因为_cmd
未定义。
我现在正在尝试对两者使用相同的宏,因此我正在尝试测试它是否已定义并认为我可以这样做:
NSString *command = (&_cmd != nil ? NSStringFromSelector(_cmd) : [NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding])
Use of undeclared identifier '_cmd'
但是当宏用于非 Objective-C 方法时,我仍然会遇到一些错误。如何进行运行时测试以确定是否_cmd
已定义?