Dictionary 类型的计算属性的设置器
Posted
技术标签:
【中文标题】Dictionary 类型的计算属性的设置器【英文标题】:Setter for computed property of type Dictionary 【发布时间】:2019-05-03 16:05:09 【问题描述】:我是 swift 新手,我正在使用 swift 4.0。我有一个具有 Dictionary 类型的计算属性的类。我正在为此属性使用 getter 和 setter。下面是我的属性 sn-p。
var responses:[String:Float]
get
let newresponses = self.calculateResponses(with: self.Range)
return newresponses
set
我如何编写 setter 代码以便我可以更新特定键的值?例如,在我的一个函数中,我需要更新特定键的响应值。
self. responses[key] = newResponse
谢谢。
【问题讨论】:
【参考方案1】:你不能用计算属性来做到这一点。因为每次您尝试获取 responses
时,实际上都会得到 self.calculateResponses(with: self.Range)
的结果。
要解决这个问题,只需创建空字典
var responses = [String : Float]()
然后当你需要分配新值时使用这个
responses[key] = newResponse
或者如果您需要分配所有新字典,请使用此
responses = self.calculateResponses(with: self.Range)
【讨论】:
以上是关于Dictionary 类型的计算属性的设置器的主要内容,如果未能解决你的问题,请参考以下文章