所以我有这个自定义结构
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
}
}
我试图通过调用此函数
将多边形附加到我的polygonCollectionfeature.getPolygonCollection().append(polygon)
但我收到了错误
cannot use mutating member on immutable value: function call returns immutable value
顺便说一下,我在另一个类中定义了多边形,它是一个很长的类,所以只需输入相应的调用代码就可以得到错误。
所有先前提出的问题
我感谢所有的帮助。
答案 0 :(得分:1)
由于值语义getPolygonCollection()
返回polygonCollection
的不可变副本。你无法改变它。这就是错误信息所说的内容。
在>>结构
中添加此功能mutating func add(polygon: MyPolygon) {
self.polygonCollection.append(polygon)
}
并将其命名为
feature.add(polygon)