0

我将如何创建一个 git pre-commit 钩子来阻止提交

NSLog(@"random debug stuff");

但跳过

//NSLog(@"useful to keep around");
4

2 回答 2

0

看看Marcus Zarra 很久以前发布的.pch 文件,我在每个项目中都使用它

除其他外,它包含NSLog替代调用DLog,使用它的好处是它利用内置的预处理器宏在生产DEUBUG中禁用NSLog

只需将以下代码包含到 YourProject.pch 文件中:

#ifdef DEBUG
  #define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
  #define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
#else
  #define DLog(...) do { } while (0)
  #ifndef NS_BLOCK_ASSERTIONS
    #define NS_BLOCK_ASSERTIONS
  #endif
  #define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#endif

#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)
于 2012-08-20T10:08:40.857 回答
0

您将需要创建自己的日志系统,您可以在其中指定消息的级别(错误、警告、信息或调试),然后在您不处于调试模式(即-DDEBUG未传递给编译器)时忽略调试调用,或者每当设置其他编译器定义时,甚至在运行时使用某些配置设置。

我不清楚 git pre-commit 钩子在这种情况下如何工作,因为您的提交状态与您的应用程序在开发方面处于什么阶段无关。

于 2012-08-20T09:54:14.683 回答