使用内联初始值设定项时,在swift类init上崩溃

时间:2016-08-12 08:31:05

标签: swift class swift3

我正在开发一个应用程序,我遇到了一个我无法解释的崩溃。

图书馆相当复杂,所以我准备了一个最小的例子

struct Info {
  static let test = 1
}

class SuperCls<A> {}

class Cls<A>: SuperCls<A> {
  let v: Info.Type = Info.self
}

let v = Cls<Int>()

当我在最后一行中分配类时出现以下错误

时,此代码崩溃

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作为类型并访问静态信息这一事实相关

1 个答案:

答案 0 :(得分:0)

好吧,似乎它是Xcode beta 5中的一个错误

感谢您的帮助