【问题标题】:How to stop ´enumerateChildNodesWithName("//*") ´ enumeration?如何停止 'enumerateChildNodesWithName("//*") ' 枚举?
【发布时间】:2016-11-12 08:17:09
【问题描述】:

如何停止此枚举?我有以下代码和 Xcode 抱怨我无法分配一个值来让常量。停止可能是一件简单的事情,但我是 Swift 的菜鸟,所以请多多包涵。

self.enumerateChildNodesWithName("//*") {
        spaceshipNode, stop in
        if (( spaceshipNode.name?.hasSuffix("ship") ) != nil) {
            for enemyNode in self.children {
                if (enemyNode.name == "enemy"){
                    if(enemyNode.containsPoint(spaceshipNode.position)){
                        self.gotoGameOverScene(spaceshipNode)
                        stop = true // Error: Cannot assign to value: 'stop' is a 'let' constant
                    }
                }
            }
        }
    }

【问题讨论】:

    标签: swift sprite-kit enumeration treenode sknode


    【解决方案1】:

    通常,您最好将代码显示为文本。有了它,我们可以轻松地复制和粘贴、测试或编辑它。

    在您的代码中,stop 的类型应在 Xcode 的“快速帮助”窗格中显示为 UnsafeMutablePointer<ObjCBool>

    需要修改指针的内容,在Swift2中:

                stop.memory = true
    

    在 Swift 3 中,属性 memory 被重命名为 pointee

                stop.pointee = true
    

    【讨论】:

    • swift 3 怎么样?
    猜你喜欢
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多