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

How to pass CGAffineTransform as function argument in Swift?

我正在使用 class 一个 Objective-c class 并覆盖一个 superclass 方法:

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

但我得到一个编译错误:无法分配给 'CGAffineTransform'

类型的不可变值

正确的做法是什么?

您不能将常量传递给 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);
}