xcode – 二进制运算符’.. <'不能应用于'Int'
发布时间: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(…)将忽略小数组件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |