我在Xcode 7.3上发现了Swift 2.2中的奇怪错误(或者它不是错误但是我做错了什么)。
我有一个案例和类的枚举,它将此枚举作为初始化程序的参数
enum OneCaseEnum {
case X
}
class OneEnumWrapper {
var myVar: OneCaseEnum
init(v: OneCaseEnum)
{
self.myVar = v
}
}
现在,如果我在真实应用程序中运行此代码,即在AppDelegate中的某个地方:
let e = OneCaseEnum.X
print(e)
let x = OneEnumWrapper(v: e)
print(x)
我在第3行的运行时获得了BAD_ACEESS。
我做错了什么还是Swift / Xcode /编译器/其他bug?
答案 0 :(得分:4)
这绝对是编译器的一个错误。奇怪的是,向case
添加第二个enum
可以完美地运作:
enum OneCaseEnum {
case X
case Y
}
class OneEnumWrapper {
var myVar: OneCaseEnum
init(v: OneCaseEnum)
{
self.myVar = v
}
}
let e = OneCaseEnum.X
print(e)
let x = OneEnumWrapper(v: e) // no crash
print(x)
您可以将此作为一种解决方法,直到识别并修复此崩溃为止。