我有一个可以在模拟器和我的iphone / ipad上运行的应用程序。但是当我构建它以进行性能分析时,我会在定义了枚举的文件中得到分段错误11。这是枚举:
internal enum PaletteType: Int {
case Normal = 0
case Darkened = 1
case Lighter = 2
case Deuteranopia = 3
case Protanopia = 4
case Tritanopia = 5
func colorDeficiency() -> Bool {
switch self {
case .Normal:
return false
case .Darkened:
return false
case .Lighter:
return false
case .Deuteranopia:
return true
case .Protanopia:
return true
case .Tritanopia:
return true
}
}
}
我认为它与switch self
语句有关。如果我删除switch语句并且总是返回false,则编译器不会给出分段错误11.但奇怪的是我有另一个定义的枚举,它也使用了switch self
语句,但这并没有给出这个错。
一个补充:在故障描述中它还说:“运行通过'在功能上简化CFG''@ _ TFO8Dathanna11PaletteType15colorDeficiencyfS0_FT_Sb'”
还有一件事:我确实知道通过替换if语句的switch self语句可以解决这个问题。然后它确实有效。我只是想知道为什么它在这个实例中不能与switch语句一起使用,而它在其他实例中工作。
知道如何解决这个问题吗?