Swift & SpriteKit - 使用 break 的 switch 语句

Swift & SpriteKit - switch statement using break

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

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

输出:

底部

如评论中所述,您的问题是您没有中断 for 循环。进入 for 循环时,两个节点都存在。这将导致它遍历两个节点,并将打印两个节点,如问题所示。在这种情况下,您应该 break for 循环。