迅捷-在变量名中使用整数进行循环

时间:2018-07-07 10:47:43

标签: swift for-loop var

我想做这样的事情:

for i in 0...3 {
let skspritenode\(i) = SKSpriteNode(imageNamed: "Layer_\(i)")
self.addChild(skspritenode\(i))
}

不起作用,因为我的skspritenode(i)是let而不是字符串 我已经尝试过了:

for i in 0...3 {
let skspritenode = SKSpriteNode(imageNamed: "Layer_\(i)")
self.addchild(skspritenode)
}

不起作用,因为skspritenode已经有一个父级。

是否有一种在for循环中执行此操作的方法,或者我必须分别声明每个let吗?谢谢高级

1 个答案:

答案 0 :(得分:1)

为什么要用不同的名称命名每个节点? skspritenode变量的作用域为for循环,因此以下代码应该可以正常工作:

for i in 0...3 {
  let skspritenode = SKSpriteNode(imageNamed: "Layer_\(i)")
  self.addchild(skspritenode)
}

您的观点

  

不起作用,因为skspritenode已经有一个父对象

不正确,因为您在每次迭代中都创建了新的SKSpriteNode。