Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift二进制运算符”不能应用于两个CGFloat操作数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在 Swift中写一个函数来检测我点击的六边形.但是我遇到了一个奇怪的错误消息,指出我不能添加两个CGFloats.无论我做了什么,例如改变为var,单独声明和分配,没有工作.我想有一些其他的错误,但我找不到.代码如下: func pointToCoordinate(position: CGPoint) -> (Int, int) { var gridHeight = 2 * s
我在 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 - @R_986_10586@lRadius / 2,y: position.y - @R_986_10586@lRadius / 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)

大佬总结

以上是大佬教程为你收集整理的Swift二进制运算符”不能应用于两个CGFloat操作数全部内容,希望文章能够帮你解决Swift二进制运算符”不能应用于两个CGFloat操作数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。