如何在 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);
}
我正在使用 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);
}