Après avoir mis à jour xCode je reçois cette erreur dans mon code :
Le compilateur est incapable de vérifier le type de cette expression dans des conditions raisonnables. temps raisonnable ; essayez de décomposer l'expression en sous-expressions distinctes
Le code :
//check popup in window frame
let spaceFromLeftSide = cutOutViewX.constant + cutOutViewWidth.constant/2 - (options.textWidth + padding*2)/2
if spaceFromLeftSide < 0{
if options.side == .bottom {
messageRightSpaceFromBottomDot.constant -= spaceFromLeftSide - padding
}
else if options.side == .top{
messageRightSpaceFromTopDot.constant += spaceFromLeftSide - padding
}
}
let spaceFromRightSide = cutOutViewX.constant + cutOutViewWidth.constant/2 + (options.textWidth + padding*2)/2
if spaceFromRightSide > targetView.frame.size.width{
if options.side == .bottom {
messageRightSpaceFromBottomDot.constant -= spaceFromRightSide - ( targetView.frame.size.width )
}
else if options.side == .top{
messageRightSpaceFromTopDot.constant += spaceFromRightSide - ( targetView.frame.size.width )
}
}
Erreur dans la ligne :
let spaceFromRightSide = cutOutViewX.constant + cutOutViewWidth.constant/2 + (options.textWidth + padding*2)/2
Comment résoudre ce problème ?
0 votes
Est-ce que certaines des valeurs de ce code sont des valeurs calculées ? par exemple
options.textWidth
? Vous pourriez essayer de spécifier la classe de chaque variable, plutôt que de vous fier à l'inférence de type, par ex.let spaceFromLeftSide: CGFloat =
2 votes
Lorsque cela se produit, un processus nommé SourceKitService utilise plus de 13 Go de mémoire sur ma machine de 8 Go. Habituellement, il utilise un peu plus de 300 Mo. Il semble que certaines expressions créent des fuites de mémoire dans le processus de construction.
13 votes
Je dois admettre que j'ai levé les yeux au ciel quand j'ai vu cette erreur.
0 votes
Voici un autre exemple ridicule : retour
0 votes
Libérez la mémoire et l'erreur disparaît ! :)