gpt4 book ai didi

swift - 从闭包中返回一个 bool 值

转载 作者:可可西里 更新时间:2023-11-01 01:35:37 25 4
gpt4 key购买 nike

我一直在 Swift 文档和谷歌搜索中搜索,但找不到如何从这样的 block 中返回值:

func checkIfplayerFellDown() -> Bool {
self.enumerateChildNodesWithName("brick", usingBlock: {
(node: SKNode!, stop: UnsafeMutablePointer <ObjCBool>) -> Bool in
if (node.position.y < self.player.position.y) { return false }
})
return true
}

问题是因为我不理解 block 。我通常这样使用它们:

world.enumerateChildNodesWithName("name") {node, stop in
if (node.position.y < self.size.height*0.5) {
node.removeFromParent()
}
}

如何从这些闭包中返回一个 bool 值?我知道我可能应该在某个地方使用语法,我尝试了一些方法但没有一个起作用,因为我不知道这些 block 是如何工作的。

任何关于如何完成此操作的解释或示例都将受到赞赏。

最佳答案

使用局部变量(在 block 外但在方法内)将结果传递到 block 外,并在要停止时将 stop 设置为 true迭代:

func playerFellDown() -> Bool {
var result = true
self.enumerateChildNodesWithName("brick") { (child, stopOut) in
if child.position.y < self.player.position.y {
result = false
stopOut.memory = true
}
}
return result
}

关于swift - 从闭包中返回一个 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38025137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com