如何在Swift中将CGAffineTransform作为函数参数传递?

时间:2015-08-20 02:23:05

标签: ios swift core-graphics

我是一个子类化Objective-c类并重写超类方法:

override func drawWithTransform(m: CGAffineTransform) 
{
     CGPathMoveToPoint(path, &m, 5, 10);
}

但是我收到了编译错误:无法分配类型的不可变值' CGAffineTransform'

正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

您不能将常量传递给UnsafePointer参数。函数参数默认为

作为解决方法,您可以使用variable parameters

override func drawWithTransform(var m: CGAffineTransform) {
     //                         ^^^^
     CGPathMoveToPoint(path, &m, 5, 10);
}

或者,事先将其复制到变量中:

override func drawWithTransform(m: CGAffineTransform) {
     var _m = m
     CGPathMoveToPoint(path, &_m, 5, 10);
}