Swift 2 Ошибка использования мутирующей функции в расширении протокола. «Невозможно использовать мутирующий член в неизменяемом значении:« self »является неизменным.

Не уверен, что здесь происходит, похоже, это должно быть довольно просто. У меня есть протокол, который изменяемый var, расширение с мутирующей функцией. Вещи выходят вtestClass.testFuncкогда я пытаюсь использоватьmtkAnimQueAppend объявленный в расширении, я получаю эту ошибку:Msgstr "Нельзя использовать мутирующий член в неизменяемом значении:" self "является неизменным.

protocol MTKAnimateValueDelegate {
    var mtkAnimQue:[MTKAnimateValue]? {get set}
}

extension MTKAnimateValueDelegate {
    ///Adds element to que
    mutating func mtkAnimQueAppend(element:MTKAnimateValue) {

        if mtkAnimQue != nil {
          mtkAnimQue?.append(element)
        } else {
          mtkAnimQue = [element]
        }
    }
}

class testClass: MTKAnimateValueDelegate {

  var mtkAnimQue:[MTKAnimateValue]?

  func testFunc() {
    var animValue = MTKAnimateValue(fromValue: 10, toValue: 20, inSeconds: 2)
    animValue.isAnimating = true
    mtkAnimQueAppend(animValue) //ERROR: "Cannot use mutating member on immutable value: 'self' is immutable
  }

}

Ответы на вопрос(1)

Ваш ответ на вопрос