Xcode 使用##__VA_ARGS__ 时出现编译器错误

Xcode compiler errors when using ##__VA_ARGS__

这是我自定义的NSLog。

#define NSLog(fmt, ...) printf("%s,%d\n %s\n\n", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:fmt, ##__VA_ARGS__].UTF8String)

这个日志在另一个项目上运行良好,但是在当前项目编译时出现4个错误。如果使用__VA_ARGS__,比如#define NSLog(...) NSLog(__VA_ARGS__),就会编译成功。我认为这可能是在 Building Setting.

中引起的

谁有办法帮我解决这个问题。

检查声明这个的头文件是否导入了 Foundation.检查您是否也没有在其他地方定义 NSLog,最后,重新定义 NSLog 确实不是一个好主意。您最好采用日志记录框架或像这样定义自己的框架:

#define MELog(fmt, ...) NSLog("%s,%d\n %s\ ....