2015-08-20 5 views
0

Я подклассы класс Objective-C и переопределение метода суперкласса:Как передать CGAffineTransform в качестве аргумента функции в Swift?

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

Но я получаю ошибку компиляции: Невозможно присвоить неизменное значение типа «CGAffineTransform»

Что правильный путь сделай это?

ответ

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); 
}