我是 swift 新手,我正在使用 swift 4.0。我有一个具有字典类型的计算属性的类。我正在为该属性使用 getter 和 setter。下面是我的属性片段。
var responses:[String:Float] {
get {
let newresponses = self.calculateResponses(with: self.Range)
return newresponses
}
set {
}
}
如何对 setter 进行编码,以便它允许我更新特定键的值?例如,在我的一个函数中,我需要更新特定键的响应值。
self. responses[key] = newResponse
谢谢。
最佳答案
您无法使用计算属性来执行此操作。因为每次您尝试获取响应
时,您实际上都会获得self.calculateResponses(with: self.Range)
的结果。
要解决这个问题,只需创建空字典
var responses = [String : Float]()
然后当您需要分配新值时使用此
responses[key] = newResponse
或者如果您需要分配所有新字典,请使用此
responses = self.calculateResponses(with: self.Range)
关于swift - Dictionary 类型的计算属性的 Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53575510/