首页 > 解决方案 > 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 

谢谢你。

标签: swiftdictionarygetter-settercomputed-properties

解决方案


你不能用计算属性来做到这一点。因为每次你试图得到responses你实际上得到的结果是 self.calculateResponses(with: self.Range).

要解决这个问题,只需创建空字典

var responses = [String : Float]()

然后当你需要分配新值时使用这个

responses[key] = newResponse

或者如果您需要分配所有新字典,请使用此

responses = self.calculateResponses(with: self.Range)

推荐阅读