Setter 用于字典类型的计算 属性

Setter for computed property of type Dictionary

我是 swift 的新手,我正在使用 swift 4.0。我有一个 class 和计算 属性 类型的字典。我为此 属性 使用 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)