gpt4 book ai didi

cocoa - 自定义 NSWindowController 子类

转载 作者:行者123 更新时间:2023-11-30 10:22:12 25 4
gpt4 key购买 nike

我一直在一个小型 Mac 应用程序中使用 Swift。

我一直在尝试添加一个非可选实例变量,但似乎我必须重写两个 init 方法。我最终得到的(编译的)代码如下所示:

class CustomWindowController: NSWindowController {
var items: [Int]

required init(coder: NSCoder!) {
items = [1, 2, 3]
super.init(coder: coder)
}

override init(window: NSWindow!) {
items = [1, 2, 3]
super.init(window: window)
}
}

我尝试抽象出 items 初始化,但它无法编译,因为“`self 在 super 初始化调用之前使用”。这是我尝试过的:

class CustomWindowController: NSWindowController {
var items: [Int]

required init(coder: NSCoder!) {
setup()
super.init(coder: coder)
}

override init(window: NSWindow!) {
setup()
super.init(window: window)
}

func setup() {
items = [1, 2, 3]
}
}

我有点困惑。这些是我的问题:

  1. 为什么有两个我必须重写的指定初始化器?我以为一般都有一个?
  2. overriderequired 之间有什么区别?为什么每个初始化器都需要不同的?
  3. 有没有办法抽象初始化代码?

最佳答案

关于cocoa - 自定义 NSWindowController 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25381157/

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