Swift 错误-无法对不可变值使用mutating成员:函数调用返回不可变值

Swift 错误-无法对不可变值使用mutating成员:函数调用返回不可变值,swift,Swift,所以我有一个自定义结构 public struct Feature { var featureID: String = "" var featureName: String = "" var matchingFieldValue: String = "" var polygonCollection = [MyPolygon]() mutating func setFeatureID(featureID: String) { self.

所以我有一个自定义结构

public struct Feature {
    var featureID: String = ""
    var featureName: String = ""
    var matchingFieldValue: String = ""

    var polygonCollection =  [MyPolygon]()

    mutating func setFeatureID(featureID: String) {
        self.featureID = featureID
    }

    func getMatchingFieldValue() -> String {
        return matchingFieldValue
    }

    mutating func setMatchingFieldvalue(matchingFieldValue: String) {
        self.matchingFieldValue = matchingFieldValue
    }

    public func getPolygonCollection() -> [MyPolygon] {
         return polygonCollection  
    }  
}
我试图通过调用这个函数将一个多边形附加到我的polygonCollection中

feature.getPolygonCollection().append(polygon)
但是我得到了错误

无法对不可变值使用mutating成员:函数调用返回不可变值

顺便说一下,我在另一个类中定义多边形,它是一个很长的类,所以只需输入给出错误的相关调用代码即可

所有先前询问的问题


非常感谢您的帮助。

由于值语义
getPolygonCollection()
返回了
polygonCollection
的不可变副本。你不能改变它。这就是错误消息所说的

在结构中添加此函数

mutating func add(polygon: MyPolygon) {
    self.polygonCollection.append(polygon)
}
叫它

feature.add(polygon)