【问题标题】:Implement a custom init with added custom parameters in subclass, in Swift在 Swift 中实现在子类中添加自定义参数的自定义初始化
【发布时间】:2015-12-26 14:46:45
【问题描述】:

我正在尝试创建一个子类,我将在其中向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>
}

我就是不知道该怎么做?

谢谢

【问题讨论】:

    标签: swift subclass init


    【解决方案1】:

    只是不可能从子类创建便利 init 以在超类中调用便利 init。为什么?初始化器必须遵循 3 条规则:

    1. 指定的初始化器必须从它的 直接超类。
    2. 便利初始化程序必须从 同班。
    3. 便利初始化程序最终必须调用指定的 初始化器。

    显示您实际上可以使用初始化器和子类化做什么的图表 (more on that topic):

    您可以做的是某种setup() 方法,该方法将自定义您创建的具有给定属性的子类实例。

    【讨论】:

    • 谢谢,这就是我现在要做的。
    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多