我在Swift中編寫了一個函數來檢測我點擊的是哪個六邊形。但我遇到了一個特殊的錯誤消息,指出我不能添加兩個CGFloats。無論我做了什麼,例如將let
更改爲var
,分別聲明並指定,不起作用。我想一定有其他的錯誤,但我找不到它。代碼如下:Swift二元運算符'+'不能應用於兩個CGFloat操作數
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)
}
「錯誤信息是錯誤的」在Xcode 8/Swift 3中對於同樣的消息仍然非常相關。 –
感謝它爲我工作。 :) – Chandni