【问题标题】:Swift & SpriteKit - switch statement using breakSwift & SpriteKit - 使用 break 的 switch 语句
【发布时间】:2018-01-21 16:40:22
【问题描述】:

我有一个 switch 语句,它决定了哪个节点名称被触及。我有两个重叠的节点。如果触及顶部,我只想执行顶部节点案例的代码。所以我在那个案子之后休息了。即便如此,这两种情况的代码都会被执行。仅触发顶级案例的最佳方法是什么?下面是代码:

for node in nodeTouched {
   if let currentNode = node.name {
      switch currentNode {
         case "thisIsTheTopNode":
            print("top")
            break
         case "thisIsTheNodeUnderneath":
            print("bottom")
            break
         default:
            break
      }
   }
}       

输出:
顶部
底部

【问题讨论】:

  • 我认为上面的代码没有任何问题。您的 break 语句应该有效。大多数情况下,您的 nodeTouched 都有两个节点。如果是,那么你也需要打破 for 循环。
  • 在swift中,你不需要break
  • 我敢打赌,nodeTouched 正在接触两个节点,而你不知道,在你的 for 后面打印一个 print("\(nodeTouched.count)")
  • @adev - 你是对的。我也需要跳出 for 循环。呃。谢谢!

标签: swift sprite-kit switch-statement break


【解决方案1】:

正如 cmets 中所述,您的问题是您没有脱离 for 循环。进入 for 循环时,两个节点都存在。这将导致它在两个节点上进行迭代,并将打印两个节点,如问题所示。在这种情况下,您应该break for 循环。

【讨论】:

    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2011-11-14
    • 2012-06-21
    • 2014-10-06
    相关资源
    最近更新 更多