使用内联初始化程序时 swift class init 崩溃
Crash on swift class init when using inline initializers
我正在开发一个应用程序,遇到了无法解释的崩溃。
这个库相当复杂,所以我准备了一个最简单的例子
struct Info {
static let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
let v: Info.Type = Info.self
}
let v = Cls<Int>()
当我在最后一行分配 class 时,此代码崩溃,并出现以下错误
file:///play.playground/: error: Playground execution aborted: error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x4403).
我也在一个xcode项目中尝试过,错误几乎相同
我找到了使此代码有效的方法
struct Info {
static let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
var v: Info.Type?
override init() {
v = Info.self
super.init()
}
}
let v = Cls<Int>()
谁能告诉我为什么会发生这种崩溃?
谢谢!
更新
I also discovered that this works
struct Info {
let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
let v = Info()
}
let v = Cls<Int>()
问题似乎与我使用 Info
作为类型并访问静态信息有关
好的,这似乎是 Xcode beta 5
中的一个错误
感谢帮助
我正在开发一个应用程序,遇到了无法解释的崩溃。
这个库相当复杂,所以我准备了一个最简单的例子
struct Info {
static let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
let v: Info.Type = Info.self
}
let v = Cls<Int>()
当我在最后一行分配 class 时,此代码崩溃,并出现以下错误
file:///play.playground/: error: Playground execution aborted: error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x4403).
我也在一个xcode项目中尝试过,错误几乎相同
我找到了使此代码有效的方法
struct Info {
static let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
var v: Info.Type?
override init() {
v = Info.self
super.init()
}
}
let v = Cls<Int>()
谁能告诉我为什么会发生这种崩溃? 谢谢!
更新
I also discovered that this works
struct Info {
let test = 1
}
class SuperCls<A> {}
class Cls<A>: SuperCls<A> {
let v = Info()
}
let v = Cls<Int>()
问题似乎与我使用 Info
作为类型并访问静态信息有关
好的,这似乎是 Xcode beta 5
中的一个错误感谢帮助