没有预编译头的自定义NSLog

时间:2015-02-27 21:41:09

标签: ios xcode nslog pch

自Xcode 6和introduction of modules以来,不再需要预编译头。我一直在使用自定义日志记录方法,该方法还记录它所在的文件,方法和行号。此方法在预编译头中定义。现在我应该在哪里定义方法,我们不应该再使用它们,而不必在一堆文件中定义它?

#define YBLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

2 个答案:

答案 0 :(得分:2)

你的#define有一点错误。

您要将YBLog(fmt,...)定义为YBLog本身。您需要在宏定义中编写NSLog而不是YBLog

您需要将其定义为:

#define YBLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

修改

如果你需要在这么多文件上访问它们,你有两个选择。

  1. 自己添加pch文件并在其中添加声明(我也是这样做的)
  2. 在头文件中定义它并将其包含在您想要的任何地方

答案 1 :(得分:0)

创建一个common.h文件并将其放在那里。 必要时进口。