Sto scrivendo una funzione in Swift per rilevare l'esagono su cui sto facendo clic. Ma mi sono imbattuto in un particolare messaggio di errore che dichiarava che non posso aggiungere due CGFloats. Qualunque cosa abbia fatto, ad es. cambiare let
a var
, dichiarare e assegnare separatamente, non ha funzionato. Immagino ci debba essere qualcos'altro che non va, ma non riesco a trovarlo. Il codice è il seguente:L'operatore binario Swift '+' non può essere applicato a due operandi 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)
}
"Il messaggio di errore è sbagliato" è ancora molto rilevante per quanto riguarda questo stesso messaggio in Xcode 8/Swift 3. –
Grazie ha funzionato per me. :) – Chandni