Ich schreibe eine Funktion in Swift, um zu erkennen, auf welches Sechseck ich klicke. Aber ich stieß auf eine seltsame Fehlermeldung, die besagt, dass ich zwei CGFloats nicht hinzufügen kann. Was auch immer ich gemacht habe, z.B. Ändern let
zu var
, separat deklarieren und zuweisen, hat nicht funktioniert. Ich denke, da muss etwas anderes falsch sein, aber ich kann es nicht finden. Der Code lautet wie folgt:Swift binärer Operator '+' kann nicht auf zwei CGFloat-Operanden angewendet werden
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)
}
"Die Fehlermeldung ist falsch" ist immer noch sehr relevant in Bezug auf die gleiche Nachricht in Xcode 8/Swift 3. –
Danke, es hat für mich funktioniert. :) – Chandni