当开关案例的默认块只有 id 调试行时,我的程序会在生产中崩溃吗



最近修复了一个问题时,我发现了以下代码,并想知道它是否会在生产中崩溃。我无法在模拟器和5s(ios 10.0)中复制任何崩溃。

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

我的理解是,在发行版中,构建将没有IF调试线,因此默认值将遵循"}"。请澄清。

我相信您甚至无法制作发布。因为在制作释放时,删除了#if DEBUG ... #endif中的所有线路。

编译器删除行

#if DEBUG
print("no match")
#endif

只会在default:中至少需要一个断路语句。

尝试修改您的计划以发布并查看将会发生什么。

上面的代码不会崩溃。撞车事故可能是由于案例1,2中的代码造成的。请在那儿检查。

相关内容

最新更新