为什么我不能遍历 NSArray?

Why can't I iterate through an NSArray?

在 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' 的引用不明确

我是 swift 的新手,我昨天才开始学习,所以我做错了什么?

你必须投射阵列。我不知道为什么苹果会这样做,但这是这样做的方式:

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
    }
}