Swift 2 Fehler beim Verwenden der Mutationsfunktion in der Protokollerweiterung "Mutationselement kann nicht für unveränderlichen Wert verwendet werden: 'self' ist unveränderlich

Nicht sicher, was hier los ist, das scheint ziemlich einfach zu sein. Ich habe ein Protokoll, das var, eine Erweiterung mit einer mutierenden Funktion. Die Dinge scheißen im testClass.testFunc, wenn ich versuche und benutze mtkAnimQueAppend in der Endung deklariert, bekomme ich diesen Fehler: "Mutierendes Element kann nicht für unveränderlichen Wert verwendet werden: 'self' ist unveränderlich.

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
  }

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage