我在继承一个Objective-c类并重写一个超类方法:
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);
}
关于ios - 如何在Swift中将CGAffineTransform传递为函数参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32108583/