gpt4 book ai didi

swift - 错误 - 无法在不可变值 : function call returns immutable value 上使用可变成员

转载 作者:可可西里 更新时间:2023-11-01 02:13:19 25 4
gpt4 key购买 nike

所以我有这个自定义结构

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)

但是我得到了错误

不能在不可变值上使用可变成员:函数调用返回不可变值

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

所有以前问过的问题

感谢所有帮助。

最佳答案

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

结构中添加这个函数

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

并调用它

feature.add(polygon)

关于swift - 错误 - 无法在不可变值 : function call returns immutable value 上使用可变成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40322234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com