加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 二进制运算符’.. <'不能应用于'Int&#39

发布时间:2020-12-14 19:34:54 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个for循环,但似乎无法理解如何摆脱这个错误 我的代码: for i:CGFloat in 0 .. 2 + self.frame.size.width / (movingGroundTexture.size().width) { let sprite = SKSpriteNode(texture: movingGroundTexture) sprite.zPosition = 0 sprite.
我正在尝试创建一个for循环,但似乎无法理解如何摆脱这个错误

我的代码:

for i:CGFloat in 0 ..< 2 + self.frame.size.width / (movingGroundTexture.size().width) { 
        let sprite = SKSpriteNode(texture: movingGroundTexture)
        sprite.zPosition = 0
        sprite.anchorPoint = CGPointMake(0,0)
        sprite.position = CGPointMake(i * sprite.size.width,0)
        addChild(sprite)
    }

self.frame.size.width和(movingGroundTexture.aize().width)上的行有错误.

解决方法

您不能使用浮点类型创建 CountableRange(或 CountableClosedRange).

您要么将2 self.frame.size.width / movingGroundTexture.size().width转换为Int:

for i in 0 ..< Int(2 + self.frame.size.width / movingGroundTexture.size().width) { 
    // i is an Int      
}

或者你想使用stride(Swift 2语法):

for i in CGFloat(0).stride(to: 2 + self.frame.size.width / movingGroundTexture.size().width,by: 1) { 
    // i is a CGFloat   
}

Swift 3语法:

for i in stride(from: 0,to: 2 + self.frame.size.width / movingGroundTexture.size().width,by: 1) {
    // i is a CGFloat
}

取决于您是否需要浮点精度.请注意,如果您的上限是非整数值,则stride版本将比范围运算符版本再迭代一次,因为Int(…)将忽略小数组件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读