0

我最近刚刚将我的代码转换为 Xcode 8 beta 附带的 Swift 3.0 语法。我遇到了几行代码,我需要更改这些代码才能使代码使用最新的语法。我能够更正所有代码行,除了我得到的关于我用来允许我的背景图像连续循环的 for 循环的错误。

我得到的确切错误消息是:对成员'..<'的模糊引用

for i:CGFloat in 0 ..< 3 {

        let background = SKSpriteNode(texture: backgroundTexture)
        background.position = CGPoint(x: backgroundTexture.size().width/2 + (backgroundTexture.size().width * i), y: self.frame.midY)
        background.size.height = self.frame.height
        background.run(movingAndReplacingBackground)
        self.addChild(background)

    }
4

2 回答 2

4

不要使用浮点类型作为循环索引

for i in 0 ..< 3 {
    let background = SKSpriteNode(texture: backgroundTexture)
    background.position = CGPoint(x: backgroundTexture.size().width/2 + (backgroundTexture.size().width * CGFloat(i)), y: self.frame.midY)
    background.size.height = self.frame.height
    background.run(movingAndReplacingBackground)
    self.addChild(background)
}
于 2016-06-22T06:47:40.510 回答
2

试试这个:

for i in 0..<3{

    let index = CGFloat(i)
    //Your Code
    let background = SKSpriteNode(texture: backgroundTexture)
    background.position = CGPoint(x: backgroundTexture.size().width/2 + (backgroundTexture.size().width * index), y: self.frame.midY)
    background.size.height = self.frame.height
    background.run(movingAndReplacingBackground)
    self.addChild(background)
}

问题是您正在执行 for 循环,Int并且您还将其指定为CGFloat. 因此,这两种类型之间存在混淆。

于 2016-06-22T06:48:36.433 回答