swift - 在变量名中使用整数 for 循环

标签 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?先谢谢你

最佳答案

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

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

你的观点

which doesn't work because skspritenode already has a parent

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

关于swift - 在变量名中使用整数 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222416/

相关文章:

xcode - SKSpriteNode 通过触摸拖动移动

带有嵌套 after() 函数的 Python For 循环发生在循环之后

python - 如何获得一个 For 循环来影响每个单独的对象

ios - Swift:模型结构,使用可选与空值初始化

c# - var to dynamic 在编译时是已知的吗?

swift - 为什么 Swift 不能自动将泛型类型参数转换为其父类(super class)?

arrays - 在迭代其范围时修改 Swift 数组 - 0 计数与 startIndex 到 endIndex

swift - UITableView 作为 UITextField didSelectRowAtIndexPath 的 inputView 随机未触发

c++ - 如何显示循环控制变量在 C++ for 循环体内没有改变?

javascript - 如何使用多个 document.getElementById 的?