同时初始化和绑定swift可选成员?

Posted

技术标签:

【中文标题】同时初始化和绑定swift可选成员?【英文标题】:Initialize and bind swift optional member at the same time? 【发布时间】:2018-10-08 14:30:05 【问题描述】:

我的类包含像这样的可选成员属性:

class PauseRenderTarget: RenderTarget 
    var background: SKShapeNode? = nil
    var resume: Entity?
    var restart: Entity?
    var reset: Entity?

    func createEntities()
 

当我初始化并想要使用这些变量时,我最终不得不做这样的事情:

func createEntities() 
    self.resume = EntityMaker.MakeResumeEntity()
    if let resume = self.resume 
        EntityManager.add(resume)
    

有没有办法快速结合这两个操作?

【问题讨论】:

你的PauseRenderTarget里面有第二段代码吗? 是的。我会说得更清楚。 【参考方案1】:

您可以将代码移动到resumedidSet 内。

var resume: Entity? 
    didSet 
        if let resume = self.resume 
            EntityManager.add(resume)
        
    

【讨论】:

以上是关于同时初始化和绑定swift可选成员?的主要内容,如果未能解决你的问题,请参考以下文章

条件绑定的初始化程序必须具有可选类型,而不是“字符串” - ios - swift

条件绑定的初始化程序必须具有可选类型,而不是 swift 3 中的“字符串”

条件绑定的初始化程序必须具有可选类型,而不是“Substring.SubSequence”(又名“Substring”) - swift [重复]

快速获取条件绑定的错误初始化程序必须具有可选类型,为啥?

条件绑定的初始化程序必须具有可选类型,而不是“UIView”

条件绑定的初始化程序必须具有可选类型,而不是“字符串”