swift - Dictionary 类型的计算属性的设置器
问题描述
我是 swift 新手,我正在使用 swift 4.0。我有一个具有 Dictionary 类型的计算属性的类。我正在为此属性使用 getter 和 setter。下面是我的属性片段。
var responses:[String:Float] {
get {
let newresponses = self.calculateResponses(with: self.Range)
return newresponses
}
set {
}
}
我如何编写 setter 代码,以便我可以更新特定键的值?例如,在我的一个函数中,我需要更新特定键的响应值。
self. responses[key] = newResponse
谢谢你。
解决方案
你不能用计算属性来做到这一点。因为每次你试图得到responses
你实际上得到的结果是 self.calculateResponses(with: self.Range)
.
要解决这个问题,只需创建空字典
var responses = [String : Float]()
然后当你需要分配新值时使用这个
responses[key] = newResponse
或者如果您需要分配所有新字典,请使用此
responses = self.calculateResponses(with: self.Range)
推荐阅读
- vba - 如何在 Office 365 for Mac 的 Visual Basic 编辑器(UI 和代码)中更改字体
- java - 添加 DELETE 端点时,由于 Spring MVC 中的 MIME 类型,资源被阻塞
- php - Easy Digital Downloads - 交易成功时触发 PHP 出错
- php - 以数组形式返回 mysql_fetch_assoc 结果
- matlab - 为什么在matlab中只有一个图是指数的,其余的是线性的?(ODE15s)
- reactjs - React modal 总是取 map 函数的最后一个元素
- objective-c - 我可以在 VSCode 中渲染和调试 Objective-C 代码吗
- hibernate - 使用带有@mapsId的spring jpa时传递的分离实体持久化
- kubernetes - 如何分配 Cloud Composer DAG 以在特定节点池上运行?
- c# - 来自数据库的id请求