добавление значения в массив данных и сохранение в Userdefault swift - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь добавить значение в массив и сохранить в userdefaults, но у меня возникла ошибка при попытке добавить новое значение к извлеченному значению.ниже мой код.

private func putArray(_ value: GMSAutocompletePrediction?, forKey key: String) {
        guard let value = value else {
            return
        }
        let newArray = getArray(forKey: key)?.append(value) // error here

        storage.setValue(NSKeyedArchiver.archivedData(withRootObject: value), forKey: key)
}

private func getArray(forKey key: String) -> [GMSAutocompletePrediction]? {
        guard let data = storage.data(forKey: key) else { return nil}
        return NSKeyedUnarchiver.unarchiveObject(with: data) as? [GMSAutocompletePrediction]
}

ниже моя ошибка

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

1 Ответ

1 голос
/ 26 сентября 2019

Проблема в том, что getArray(forKey: key)? является неизменным, вы не можете прикрепить append непосредственно к нему, поэтому вам нужно

var newArray = getArray(forKey: key) ?? []
newArray.append(value)
...