不知道这里发生了什么,这似乎应该是非常简单的。 我有一个可变的协议,一个带有变异函数的扩展。 当我试着在扩展中声明mtkAnimQueAppend时,事情在testClass.testFunc中出现,我得到这个错误: “不能在不可变的值上使用变异成员:'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: […]