当只有用于switch case默认块的id调试行时,我的程序是否会在生产中崩溃

时间:2016-12-15 09:25:04

标签: ios swift

最近在修复问题时,我找到了下面的代码,并想知道它是否会在生产中崩溃。我无法在模拟器和我的5s(iOS 10.0)中复制任何崩溃。

 switch myVar{
  case 1 : //some code
  case 2 : //some code
  default : 
            #if DEBUG
            print("no match")
            #endif
  }

我的理解是,在发布版本中不会有if DEBUG行,因此默认将后跟“}”。请澄清。

2 个答案:

答案 0 :(得分:0)

我相信你甚至无法发布版本。因为在进行发布构建时,<button id="convert">Press me</button> 中的所有行都将被删除。

当编译器删除行

#if DEBUG ... #endif

它只会在#if DEBUG print("no match") #endif 中抛出至少需要一个break语句的错误。

尝试一下,将您的方案修改为Release,看看会发生什么。

答案 1 :(得分:0)

上面的代码不会崩溃。崩溃可能是由于案例1,2中的一段代码造成的。请检查那里。