如何停止'enumerateChildNodesWithName("//*")'枚举?

use*_*883 0 enumeration treenode sprite-kit sknode swift

如何停止此枚举?我有以下代码和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
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

OOP*_*Per 8

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

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

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

            stop.memory = true
Run Code Online (Sandbox Code Playgroud)

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

            stop.pointee = true
Run Code Online (Sandbox Code Playgroud)