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

Swift二进制运算符”不能应用于两个CGFloat操作数

发布时间:2020-12-14 05:35:25 所属栏目:百科 来源:网络整理
导读:我在 Swift中写一个函数来检测我点击的六边形.但是我遇到了一个奇怪的错误消息,指出我不能添加两个CGFloats.无论我做了什么,例如改变为var,单独声明和分配,没有工作.我想有一些其他的错误,但我找不到.代码如下: func pointToCoordinate(position: CGPoint)
我在 Swift中写一个函数来检测我点击的六边形.但是我遇到了一个奇怪的错误消息,指出我不能添加两个CGFloats.无论我做了什么,例如改变为var,单独声明和分配,没有工作.我想有一些其他的错误,但我找不到.代码如下:
func pointToCoordinate(position: CGPoint) -> (Int,Int) {
        var gridHeight = 2 * singleRadius / sqrt(CGFloat(3)) * 1.5
        var gridWidth = 2 * singleRadius
        var halfWidth = singleRadius

        var relativePosition = CGPoint(x: position.x - totalRadius / 2,y: position.y - totalRadius / 2)
        println((relativePosition.y / gridHeight))
        var row = -(cgfloatToInt)(relativePosition.y / gridHeight)
        var column: Int

        println((relativePosition.x + halfWidth * CGFloat(row + 1)) / (gridWidth))
        column = cgfloatToInt((relativePosition.x + halfWidth * CGFloat(row + 1)) / (gridWidth))

//        var innerY: CGFloat = CGFloat(relativePosition.y) + CGFloat(gridHeight * row)
        var innerX = relativePosition.x
        var innerY = relativePosition.y

        innerY = innerY - CGFloat(gridHeight * row)

        println((innerX,innerY))
        return (column,row)
    }
错误信息是错误的.问题是你正在尝试增加一个Int和一个CGFloat.

更换:

innerY = innerY - CGFloat(gridHeight * row)

有:

innerY = innerY - gridHeight * CGFloat(row)

以上答案是您当前版本的代码.对于与您发布的错误消息相对应的已注释版本:

更换:

var innerY: CGFloat = CGFloat(relativePosition.y) + CGFloat(gridHeight * row)

var innerY: CGFloat = CGFloat(relativePosition.y) + gridHeight * CGFloat(row)

(编辑:李大同)

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

    推荐文章
      热点阅读