swift - Dictionary 类型的计算属性的 Setter

标签 swift dictionary getter-setter computed-properties

我是 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/

相关文章:

ios - 将正则表达式与 NSPredicate 结合使用

python - 比较 Python 中两个字典的值

ios - 向复杂字典 Swift 添加值

c# - 用于设置不同修饰符来获取/设置的一行代码

objective-c - 覆盖 Objective-c 中的 setter。为什么检查相等参数

objective-c - 覆盖子类的所有 setter 和 getter

swift - 为什么不能在 Swift 的 Switch 语句中初始化类

string - 快速将数字转换为文本

swift - 如何在 Swift 中使用 associatedtype 的协议(protocol)闭包中使用 Void 类型

c++ - 键比较的最佳方式(C++ 映射)