Je travaille sur un chemin personnalisé pour UIBezierPath, et je reçois le "Impossible d'attribuer une valeur de type (CGFloat) à une valeur de type CGFloat." Je pense que c'est parce qu'il y a un problème avec le typecasting? Comment puis-je réparer cela? Les avertissements apparaissent pour la ligne "X = (b2 - b1)/(m1 - m2)" et la ligne "Y = m1 * X + b1".Comment faire un "Typecast" dans Swift?
func lineIntersection(m1: CGFloat, b1: CGFloat, m2: CGFloat, b2: CGFloat, inout X: CGFloat, inout Y: CGFloat) -> Bool {
if m1 == m2 {
return false
} else if X = (b2 - b1)/(m1 - m2) {
return true
} else if Y = m1 * X + b1 {
return true
} else {
return false
}
}
Je vais appeler cette fonction dans une autre fonction plus tard
func xxx() {
var outX = CGFloat()
var outY = CGFloat()
lineIntersection(oldSlope, b1: oldIntercept, m2: newSlope, b2: newIntercept, X: &outX, Y: &outY)
}
Remplacez '=' par '==' dans vos conditions 'else if', aussi dans ce cas pas besoin d'inouts. (sauf si vous vouliez réellement assigner des valeurs à X et Y au lieu de les comparer, mais votre code ne fonctionnerait pas non plus pour cela). – Moritz
Etes-vous sûr de vouloir '=' sur ces lignes et non '=='? –
Vous devriez vraiment utiliser 'CGPoint' – Sulthan