iOS:用于调试版本的可选代码片段

Jak*_*kob 19 iphone debugging release building ios

对于我的应用程序,我想要一个调试视图,我想只在调试版本中而不是在发布版本中.我不想改变我的代码.这就是为什么我想知道我是否可以检查一些编译器标志,如果这是一个发布版本并排除一些我只想拥有调试版本的代码.

Dan*_*n F 32

在项目构建设置中,查找预处理器定义部分,在那里你可以只在调试版本中定义一个变量,例如DEBUG=1,然后在你的代码中使用它:

#if DEBUG
    NSLog(@"This will only print in debug!");
#endif
Run Code Online (Sandbox Code Playgroud)

只需确保在发布配置中,在构建设置的同一位置将相同的define设置为0

  • 正如我之前在评论中所说,我更喜欢使用`#if`而不是`#ifdef`.这完全取决于程序员使用,每个都有其优点和缺点.我的偏好是使用始终定义每个标志的方法,但是作为0或1表示该标志的状态,而不是试图弄清楚该标志是否在项目中定义 (2认同)
  • #ifdef将被视为true,即使在预处理器中设置了DEBUG = 0,因此我认为使用#ifdef是危险的 (2认同)

Dam*_*amo 26

检查项目构建设置以进行调试以确保正在设置"DEBUG" - Apple免费提供此功能 - 通过选择项目并单击构建设置选项卡来执行此操作.搜索'DEBUG'并查看是否确实设置了DEBUG.

我的项目设置的Build Settings选项卡

然后在源文件中有条件地为DEBUG编码

#ifdef DEBUG

// Something to log your data here or even add a whole subview to see it on the device

#else

// 

#endif
Run Code Online (Sandbox Code Playgroud)

  • 但是如果您将应用程序提交给苹果并且忘记设置为DEBUG = 0,该怎么办? (2认同)