J'appelle getLineDash
d'un UIBeizerPath
avec ceci:'carte' produit [T], pas le type de résultat contextuel prévu 'UnsafeMutablePointer <CGFloat>'
path.getLineDash(pattern.map{CGFloat($0)}, ...)
Où pattern
est un [Float]
(Et je dois utiliser [Float]
, non [CGFloat]
) suivant Fast method to cast [Float] to [CGFloat]? le jeter aux [CGFloat]
, mais il me donne
Cannot convert value of type '[CGFloat]' to expected argument type 'UnsafeMutablePointer<CGFloat>?'
Weirdly, effectuer
path.setLineDash(pattern.map{CGFloat($0)}, ...
Ne déclenche pas d'erreur de compilation.
Après this question, j'ai ajouté as UnsafeMutablePointer<CGFloat>
mais il me donne toujours l'erreur.
Voir: http://stackoverflow.com/questions/39515173/how-to-use-unsafemutablepointer-in-swift-3 – shallowThought
La méthode '' setLineDash' prend UnsafePointer ', Vous pouvez donc utiliser' map'. (Cependant, ce n'est pas un moyen efficace d'appeler 'map' à chaque invocation de' setLineDash'.) Vous ** devez ** utiliser '[CGFloat]' (ou la région de 'CGFloat's) allouée manuellement pour appeler' getLineDash '. – OOPer