ios - 使用 ##__VA_ARGS__ 时 Xcode 编译器错误

标签 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

任何人都可以帮助我解决这个问题。

最佳答案

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

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

关于ios - 使用 ##__VA_ARGS__ 时 Xcode 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462929/

相关文章:

ios - 将 indexpath 标记传递给 tableview 中原型(prototype)单元格内的按钮

ios - 如何在降压构建上运行 xcconfig

iOS Thrift SSL 连接

ios - 在集成 pod 文件之前,如何处理放置在桥接 header 中的第 3 方代码

objective-c - 如何在 iOS 中使用数字通知 "bubble"?

ios - 在ios中按升序对一些金额进行排序

ios - 如何使用 ARC 在 iOS 7 中存储密码

ios - 如何检查全局调度队列是否为空?

ios - 我可以将 UI 自动化测试与 XCode 集成并设置为每晚自动运行吗?

ios - 如何只为 topLeft 和 bottomLeft 角设置圆角?