在 Swift 的子类中实现带有自定义参数的自定义初始化

Implement a custom init with added custom parameters in subclass, in Swift

我正在尝试创建一个子类,我将在其中向 SCNParticleSystem 对象添加更多函数和属性。

Swift 中的 SCNParticleSystem 头文件只有这个 init 声明:

public convenience init?(named name: String, inDirectory directory: String?)

所以,我想做的是使用与 init 相同的参数,但也像这样向 init 添加自定义参数,并对我的属性进行一些设置:

init how ? (particleSystemFileName:String, inDirectory:String, parentNode:SCNNode)
{
    init who ?

    <setup my stuff>
}

我只是不知道该怎么做?

感谢

只是不可能从 subclass 创建 convenience init 来调用 superclass 中的 convenience init。为什么?初始化程序必须遵循 3 条规则:

  1. 一个指定的初始化器必须从它的 立即超class.
  2. 便利初始化器必须调用另一个初始化器 相同 class.
  3. 便利初始化器最终必须调用一个指定的 初始值设定项。

显示您可以使用初始化器和子classing (more on that topic) 实际执行的操作的图表:

您可以使用某种 setup() 方法来自定义您创建的具有给定属性的 subclass 实例。