Ios 升级到Xcode7后使用便利init()执行错误访问

Ios 升级到Xcode7后使用便利init()执行错误访问,ios,xcode,swift,swift2,Ios,Xcode,Swift,Swift2,(注:当使用故事板时,该问题不存在,仅在没有故事板的情况下(即编程方式)复制) 升级到Xcode7后,先前运行的代码现在抛出了EXC_BAD_访问。我用下面的简单代码重现了这个问题: class ViewController: UIViewController { convenience init() { self.init() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) }

(注:当使用故事板时,该问题不存在,仅在没有故事板的情况下(即编程方式)复制)

升级到Xcode7后,先前运行的代码现在抛出了EXC_BAD_访问。我用下面的简单代码重现了这个问题:

class ViewController: UIViewController {

convenience init() {
    self.init()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
    super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
}
便利init对自身进行无休止的调用,直到抛出异常为止,如果这是预期的行为,那么为什么它与脚本一起工作,为什么它在Xcode7之前工作。 回溯如下:

线程#1:tid=0x11ec92,0x00025dd4 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController位于ViewController.swift:18,队列='com.apple.main thread',停止原因=EXC_坏访问(代码=2,地址=0x38ffc)
帧#0:0x00025dd4 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController在ViewController处。swift:18 帧#1:0x00025df8 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController+36在ViewController.swift:19
帧#2:0x00025df8 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController+36在ViewController.swift:19 帧#3:0x00025df8 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController+36在ViewController.swift:19
帧#4:0x00025df8 InitTest
InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController+36在ViewController.swift:19
帧#5:0x00025df8 InitTest`InitTest.ViewController.init(self=0x00000000)(->InitTest.ViewController+36在ViewController.swift:19

它在使用故事板时工作,因为故事板不调用
init()
。我不知道为什么在Xcode7之前它能工作,我发现它能工作真的很令人惊讶。是的,它本来就不应该工作。丹,你能不能把你的评论作为答案,我会接受的。