38

Trying to create a CGMutablePath() as such:

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

but the compiler keeps on giving me the following error: 'nil' not compatible with expected argument type 'UnsafePointer<CGAffineTransform>'. What am I doing wrong? I can't seem to find anything else online. (Yes I've tried converting the Ints to CGFloats but it doesn't seem to make a difference.)

cyril
  • 3,020
  • 6
  • 36
  • 61

2 Answers2

60

Try this:

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

CGPath APIs are now imported as instance methods in Swift 3. You can check them with Command-clicking on CGMutablePath. Or see the latest reference of CGMutablePath.

OOPer
  • 47,149
  • 6
  • 107
  • 142
  • wow, I'm surprised this works. Any reason why Xcode didn't convert to code to Swift 3? – cyril Aug 19 '16 at 14:54
  • 3
    @cyril , one reason may be Swift is evolving too fast. So the migrator is a little bit behind the actual behaviour of Swift. And I found this because Swift could not migrate one of my projects. (As you see, you would not check whole migration details, if migration had completely succeeded.) – OOPer Aug 19 '16 at 15:15
10

I was getting this error when trying to draw inside a CGRect

This solved it for me:

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

I hope this saves you countless hours trying to solve this. :)

uplearned.com
  • 3,393
  • 5
  • 44
  • 59