2016-08-19 8 views
31

Próbując stworzyć CGMutablePath() jako takie:Dlaczego "zero" nie jest zgodne z "UnsafePointer <CGAffineTransform>" w Swift 3?

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

ale kompilator ciągle daje mi następujący błąd: 'nil' not compatible with expected argument type 'UnsafePointer<CGAffineTransform>'. Co ja robię źle? Nie mogę znaleźć niczego innego w Internecie. (Tak Próbowałem konwersji int do CGFloats ale nie wydaje się, aby różnica.)

+0

Która wersja Xcode? –

+0

@MartinR ostatnia beta (Xcode 8 beta 6) – cyril

Odpowiedz

57

Spróbuj tego: API

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

CGPath są importowane jako metody instancji w Swift 3. Można je sprawdzić, klikając polecenie Command na CGMutablePath. Lub zobacz the latest reference of CGMutablePath.

+0

wow, jestem zaskoczony, że to działa. Jakiś powód, dla którego Xcode nie przekonwertował kodu na Swift 3? – cyril

+3

@ cirril, jednym z powodów może być Swift ewoluuje zbyt szybko. Tak więc migrator jest trochę za rzeczywistym zachowaniem Swift. I znalazłem to, ponieważ Swift nie mógł migrować jednego z moich projektów. (Jak widać, nie sprawdzono wszystkich szczegółów migracji, jeśli migracja całkowicie się powiodła.) – OOPer

8

ja otrzymuję ten błąd, gdy próbuje rysować wewnątrz CGRect

to rozwiązać to dla mnie:

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

mam nadzieję Pozwala to zaoszczędzić wiele godzin starając się rozwiązać ten problem. :)

Powiązane problemy