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

如何在iOS中禁用Xcode 5中的所有NSLog?,ios,Ios,我有这么多的NSLog(@“.”);在xcode中打印值。因此,当我发布应用程序时,我想禁用Xcode中的所有NSLog,而不是执行//NSLog 我有两个问题 当我当时使用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 但我不喜欢这种类型的输出。我只

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

我有两个问题

  • 当我当时使用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
    
  • 但我不喜欢这种类型的输出。我只想显示如下输出:

        PHONENUMBER:1234567890
        USERNAME: myname
    

    2.当我释放应用程序时,完全禁用NSLog。

    打开你的
    .pch
    文件

    添加以下行

    启用//隐藏所有
    NSLog

    #ifndef _DEBUG
    #define NSLog(format, ...)
    #endif
    
    /*
    #ifndef _DEBUG
    #define NSLog(format, ...)
    #endif
    */
    
    禁用//显示所有
    NSLog

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

    打开
    .pch
    文件

    添加以下行

    启用//隐藏所有
    NSLog

    #ifndef _DEBUG
    #define NSLog(format, ...)
    #endif
    
    /*
    #ifndef _DEBUG
    #define NSLog(format, ...)
    #endif
    */
    
    禁用//显示所有
    NSLog

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

    对于您的问题1,请遵循以下答案:

     #ifdef DEBUG
     #define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT,      ##__VA_ARGS__] UTF8String]);
     #else
     #define NSLog(...) {}
     #endif
    
     #ifndef NDEBUG
     #define NSLog(...);
     #endif
    
    这仅用于显示像printf一样的输出,而不是像NSLog一样的输出----

    对于您的问题2,请遵循以下答案:

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

    它在xcode 5和iOS 7上也可以正常工作。:)

    对于您的问题1,请遵循以下答案:

     #ifdef DEBUG
     #define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT,      ##__VA_ARGS__] UTF8String]);
     #else
     #define NSLog(...) {}
     #endif
    
     #ifndef NDEBUG
     #define NSLog(...);
     #endif
    
    这仅用于显示像printf一样的输出,而不是像NSLog一样的输出----

    对于您的问题2,请遵循以下答案:

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

    它在xcode 5和iOS 7上也可以正常工作。:)

    要完全禁用,请将
    #define NSLog(…)
    放在前缀.pchThanks@toasted_flakes中。如果要完全禁用,请将
    #define NSLog(…)
    放在前缀中。pchThanks@toasted_flakes。它起作用了fine@SR Nayak它对live应用程序有效吗?或者它只适用于degudmode?所以上传时不需要从.pch中删除代码,对吗?我的意思是它不会产生任何问题。会发生什么:
    #ifdef DEBUG
    =>“如果在调试配置中”
    #定义NSLog(…)
    =>用右侧的任何
    (…)
    参数替换
    NSLog
    的所有实例。这意味着将NSLog的第一个参数粘贴为格式,其余参数进入
    ###(u)VA(u)args(u)
    @S R Nayak是否适用于live app?或者它只适用于degudmode?所以上传时不需要从.pch中删除代码,对吗?我的意思是它不会产生任何问题。会发生什么:
    #ifdef DEBUG
    =>“如果在调试配置中”
    #定义NSLog(…)
    =>用右侧的任何
    (…)
    参数替换
    NSLog
    的所有实例。这意味着将NSLog的第一个参数粘贴为FORMAT,其余参数进入
    ##uu VA_uargs_u