为什么在Swift 3中,'nil'与'UnsafePointer<CGAffineTransform>'不兼容?

38

尝试使用CGMutablePath()创建:

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

然而编译器一直给我报错:'nil'不兼容预期的参数类型 'UnsafePointer<CGAffineTransform>'。我做错了什么?我似乎在网上找不到其他解决方法。(是的,我已经尝试将Int转换为CGFloat,但似乎没有任何区别。)


哪个Xcode版本? - Martin R
@MartinR 最新的测试版(Xcode 8 beta 6) - cyril
2个回答

60

试试这个:

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

CGPath的API现在在Swift 3中作为实例方法导入。 您可以通过对CGMutablePath进行Command-click来检查它们。 或者参见最新的CGMutablePath参考资料


哇,我很惊讶这个能工作。为什么Xcode没有将代码转换成Swift 3呢? - cyril
3
@cyril,可能原因之一是Swift发展太快了,所以迁移器的进度落后于Swift的实际行为。我发现这是因为Swift无法迁移我的一个项目。(正如您所见,如果迁移完全成功,您不会检查整个迁移详情。) - OOPer

10

当我尝试在一个CGRect内绘图时,出现了错误。

以下方法解决了我的问题:

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

我希望这可以为您节省无数的时间,试图解决这个问题。 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接