Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从发布版本中删除NSLog_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 从发布版本中删除NSLog

Objective c 从发布版本中删除NSLog,objective-c,ios,xcode,Objective C,Ios,Xcode,可能重复: 在发布构建期间,我需要删除项目中存在的所有NSLog。我试过使用下面的代码,但仍然通过电话访问构建,仍然在控制台中显示NSLOG #ifdef DEBUG #define debug_NSLog(format, ...) NSLog(format, ## __VA_ARGS__) #else #define debug_NSLog(format, ...) #endif 使用以下代码 #ifdef DEBUGGING # define DBLog(fmt,...) NSLog(

可能重复:

在发布构建期间,我需要删除项目中存在的所有NSLog。我试过使用下面的代码,但仍然通过电话访问构建,仍然在控制台中显示NSLOG

#ifdef DEBUG
#define debug_NSLog(format, ...) NSLog(format, ## __VA_ARGS__)
#else
#define debug_NSLog(format, ...)
#endif
使用以下代码

#ifdef DEBUGGING
# define DBLog(fmt,...) NSLog(@"%@",[NSString stringWithFormat:(fmt), ##__VA_ARGS__]);
#else
# define DBLog(...)
#endif 
确保正确设置了编译器标志

另外,当您检查控制台时,是否检查了您是否正在使用释放模式?

使用以下代码

#ifdef DEBUGGING
# define DBLog(fmt,...) NSLog(@"%@",[NSString stringWithFormat:(fmt), ##__VA_ARGS__]);
#else
# define DBLog(...)
#endif 
确保正确设置了编译器标志

另外,当您检查控制台时,是否检查了您是否正在使用释放模式?

使用此选项

#if TARGET_IPHONE_SIMULATOR
#define NSLog(fmt,...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define NSLog(...)
#endif
如果您在模拟器上运行,这将打印
NSLog

使用此

#if TARGET_IPHONE_SIMULATOR
#define NSLog(fmt,...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define NSLog(...)
#endif

如果您在模拟器上运行它,这将打印
NSLog

只需删除NSLog:

#define NSLog(s,...)

没有指定替换的
#define
将不替换任何内容,删除与
#define
匹配的任何内容。这适用于简单的令牌定义和类似上述定义的函数。

要简单地删除NSLogs:

#define NSLog(s,...)

没有指定替换的
#define
将不替换任何内容,删除与
#define
匹配的任何内容。这适用于简单的令牌定义和类似上述定义的函数。

您是否在代码中使用
debug\u NSLog
来代替
NSLog
?请将常量值分配到.pch文件中,并分配布尔值,检查该值是否为真,然后显示其他方面的值,而不是显示。您的答案可以在这里吗您是否在代码中使用
debug\u NSLog
来代替
NSLog
?请将常量值分配到.pch文件中,并分配布尔值,然后检查该值是否为真,然后以其他方式显示而不显示。请您在这里给出的答案在功能上与OPs
debug\u NSLog
相当。这是如何回答OPs问题的?可能是他在检查控制台时没有设置编译器标志,或者构建处于调试模式,我已经提到过。这是另一种方式,我发现在我的应用程序版本的当前状态下很容易做到这一点:#ifndef debug#define NSLog(…)/*在释放模式下抑制NSLog*/#如果这在功能上相当于OPs
debug\u NSLog
。这是如何回答OPs问题的?可能是他在检查控制台时没有设置编译器标志或构建处于调试模式,我已经提到过。这是另一种方式,我发现在我的应用程序发布的当前状态下很容易做到这一点:#ifndef debug#define NSLog(…)/*在发布模式下抑制NSLog*/#endifI已经使用了这一点“#定义NSLog,…”,但仍在设备内以发布模式运行应用程序,仍有NSLog出现在控制台中。我使用了此“#定义NSLog,…)“,但仍在设备内以发布模式运行应用程序,控制台中仍有NSLOG。许多开发人员正在实际设备(非SIM)上测试和调试,但对某些设备可能有用。许多开发人员正在实际设备(非SIM)上测试和调试,但对某些设备可能有用。