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

时间:2017-04-18 03:08:49

标签: ios objective-c xcode macros variadic

这是我定制的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

造成的

error 1

error 2

error 3

error 4

任何人都有任何想法帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

检查声明此导入Foundation的头文件。检查你没有在其他地方定义NSLog,最后,重新定义NSLog真的不是一个好主意。您最好采用日志框架或定义自己的日志框架:

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