gpt4 book ai didi

ios - 更新到 Swift 1.2 后出错

转载 作者:搜寻专家 更新时间:2023-11-01 07:34:21 24 4
gpt4 key购买 nike

我很快更新到 Xcode 6.3.2 附带的 Swift 1.2 并写了几行代码:

let originView:UIView!

override init() {

super.init()

}

init(sourceView:UIView, menuItems:Array<String>){

super.init()

originView = sourceView
}

这段代码运行完美,直到我更新了新版本的 Xcode (6.3.2)。

现在我收到以下错误:Property 'self.originView' not initialized at super.init call

直到现在我都找不到解决方案,因为我还在学习 Swift。

有人知道我如何解决这个问题吗?

P.S 这不是 this question 的副本因为这段代码:init(sourceView:UIView, menuItems:Array<String>)而不是 override init(frame: CGRect) .

更新:

新代码:

override convenience init() {

self.init()
}

init(sourceView:UIView, menuItems:Array<String>){

originView = sourceView
super.init()
}

新错误: Thread 1: EXC_BAD_ACCESS (code=2, address=0x7fff5f300ff8)在这行代码中:self.init()

最佳答案

尝试修改这部分。

 override init() {

super.init()

}

  override init() {

self.init(UIView(), nil) // Or other initial values

}

如果这不能解决您的错误,这是更好的方法,因为 init() 调用您的自定义 init 并初始化您的变量。

编辑更新

您的修改不正确

  override convenience init() {

self.init() // This init referred "override convenience init()" !! So recursive call

}

您必须像我之前所说的那样提供 init 调用的参数,以便将“override convenience init()”重定向到“init(sourceView:UIView, menuItems:Array)”。

关于ios - 更新到 Swift 1.2 后出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com