我当前的DEB_LOG
宏扩展NSLog
以打印出记录它的对象,方法和行:
#define DEB_LOG(__FORMAT__,...) NSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
如果可能,我还想将其扩展为报告是否在主线程。
[NSThread isMainThread]
这可能吗?
答案 0 :(得分:2)
这应该这样做:
#define DEB_LOG(__FORMAT__,...) NSLog((@"%s line %d%s $ " __FORMAT__), \
__PRETTY_FUNCTION__, __LINE__, \
([NSThread isMainThread] ? " (main thread)" : ""), \
##__VA_ARGS__)
从
生成的输出DEB_LOG(@"%@", @"Hello world");
是
-[AppDelegate application:didFinishLaunchingWithOptions:] line 20 (main thread) $ Hello world
答案 1 :(得分:1)
当然可以!
看起来像这样:
#define NSLog(__FORMAT__, ...) NSLog((@"%s line %d [Thread:%s] " __FORMAT__), \
__PRETTY_FUNCTION__, __LINE__, ([NSThread isMainThread] ? "Main" : "Background"), \
##__VA_ARGS__)