【发布时间】:2012-12-01 17:37:28
【问题描述】:
我有一个特殊的NSLog 方法调配器,它将当前方法打印为日志语句的一部分。
对于 Objective-C 方法,我有一个宏使用:NSStringFromSelector(_cmd)
对于非 Objective-C 方法,我有第二个宏使用 __PRETTY_FUNCTION__,因为未定义 _cmd。
我现在尝试对两者使用相同的宏,因此我尝试测试它是否已定义并认为我可以这样做:
NSString *command = (&_cmd != nil ? NSStringFromSelector(_cmd) : [NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding])
但是当宏用于非 Objective-C 方法时,我仍然会收到一些 Use of undeclared identifier '_cmd' 错误。如何进行运行时测试以确定是否定义了 _cmd?
【问题讨论】:
标签: objective-c c logging macros nsstring