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)