2016-08-19 4 views
31

Der Versuch, ein CGMutablePath() als solche zu schaffen: auf dass sie mir die folgende FehlerWarum ist "nil" in Swift 3 nicht kompatibel mit "UnsafePointer <CGAffineTransform>"?

let path = CGMutablePath() 
CGPathMoveToPoint(path, nil, 30, 0) 

aber der Compiler hält: 'nil' not compatible with expected argument type 'UnsafePointer<CGAffineTransform>'. Was mache ich falsch? Ich kann scheinbar nichts anderes online finden. (Ja, ich habe versucht, die Ints zu CGFloats Umwandlung aber es scheint nicht, einen Unterschied zu machen.)

+0

Welche Xcode Version? –

+0

@MartinR neueste Beta (Xcode 8 Beta 6) – cyril

Antwort

57

Try this:

let path = CGMutablePath() 
path.move(to: CGPoint(x: 30, y: 0)) 

CGPath APIs jetzt als Instanzmethoden in Swift 3 importiert werden. Sie können sie mit dem Befehl-Klicken auf CGMutablePath überprüfen. Oder siehe the latest reference of CGMutablePath.

+0

wow, ich bin überrascht, das funktioniert. Gibt es irgendeinen Grund, warum Xcode nicht in Code von Swift 3 konvertiert wurde? – cyril

+3

@cyril, ein Grund kann sein Swift entwickelt sich zu schnell. Der Migrator ist also ein wenig hinter dem tatsächlichen Verhalten von Swift. Und ich fand das, weil Swift eines meiner Projekte nicht migrieren konnte. (Wie Sie sehen, würden Sie die vollständigen Migrationsdetails nicht überprüfen, wenn die Migration vollständig erfolgreich abgeschlossen wurde.) – OOPer

8

ich diesen Fehler war, wenn ich versuche in einem CGRect

Das ist für mich gelöst, es zu zeichnen:

let framePath : CGMutablePath = CGMutablePath() 
framePath.addRect(frameRect) 

Ich hoffe, das erspart Ihnen unzählige Stunden, diese zu lösen versuchen. :)

Verwandte Themen