Установщик для вычисляемого свойства типа Dictionary - PullRequest
0 голосов
/ 02 декабря 2018

Я новичок в Swift и использую Swift 4.0.У меня есть класс с вычисляемым свойством типа словаря.Я использую геттер и сеттер для этого свойства.Ниже приведен фрагмент моего свойства.

var responses:[String:Float] {
    get {
        let newresponses = self.calculateResponses(with: self.Range)
        return newresponses
    }
    set {

    }
}

Как настроить кодировщик, чтобы он мог обновлять значение для определенного ключа?Например, в одной из моих функций мне нужно обновить значение для ответов на определенный ключ.

self. responses[key] = newResponse 

Спасибо.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы не можете сделать это с вычисляемым свойством.Потому что каждый раз, когда вы пытаетесь получить responses, на самом деле вы получаете результат self.calculateResponses(with: self.Range).

. Чтобы решить эту проблему, просто создайте пустой словарь

var responses = [String : Float]()

, а затем, когда вам нужночтобы назначить новое значение, используйте это

responses[key] = newResponse

или, если вам нужно назначить все новые словари, используйте это

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