如何在iOS中禁用Xcode 5中的所有NSLog?

时间:2014-08-07 07:05:44

标签: ios

我有这么多NSLog(@" ..");在xcode中打印值。因此,当我发布应用程序时,我想在我的Xcode中禁用所有NSLog而不是// NSLog。

我有两个问题。

  1. 当我使用Nslog时,它会显示如下结果..

    2014-08-07 12:29:29.609 myapp_name[4694:70b] PHONENUMBER:1234567890
    2014-08-07 12:29:29.611 myapp_name[4694:70b] USERNAME: myname
    
  2. 但我不喜欢这种类型的输出。我只想显示输出:

        PHONENUMBER:1234567890
        USERNAME: myname
    

    2.当我发布应用程序时,完全禁用NSLog。

2 个答案:

答案 0 :(得分:9)

对于您的问题1请按照以下答案:

 #ifdef DEBUG
 #define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT,      ##__VA_ARGS__] UTF8String]);
 #else
 #define NSLog(...) {}
 #endif

这只是为了显示像printf这样的输出不像NSLog ----

对于你的问题2请按照这个答案:

 #ifndef NDEBUG
 #define NSLog(...);
 #endif

它在xcode 5和iOS 7上也运行良好。 :)

答案 1 :(得分:1)

打开您的.pch文件

添加以下行

启用//隐藏所有NSLog

#ifndef _DEBUG
#define NSLog(format, ...)
#endif

禁用//显示全部NSLog

/*
#ifndef _DEBUG
#define NSLog(format, ...)
#endif
*/