为什么我不能遍历NSArray?

时间:2015-04-19 07:50:19

标签: ios swift sprite-kit

在Objective-C中,我总是这样做:

for (SKSpriteNode *sprite in sprites.children) {

   //Do something for every sprite.
}

但是当我尝试在swift中做同样的事情时,我会遇到问题。

我这样做:

 for sprite: SKSpriteNode in sprites.children {

   //Do something for every sprite.
  }

这给了我错误: 对于通用方法'children'的引用是不明确的,没有更多的上下文

我很快就开始学习,我刚开始学习,所以我做错了什么?

1 个答案:

答案 0 :(得分:1)

你必须施放数组。我不知道为什么苹果会这样做,但这是做到这一点的方法:

for sprite in sprites.children as [SKSpriteNode] {
    // If you know for sure that every child is an SKSpritNode
}

// OR

for child in sprites.children {
    if let sprite = child as? SKSpriteNode {
        // To be 100% sure
    }
}