добавление кодируемой модели в царство Swift - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь добавить модель Codable в базу данных области.Модель работает, и значения передаются из API вызова, однако, я хочу создать Массив в моей Realm БД, поэтому, когда я нажимаю кнопку сохранения,Модель добавляется в БД.

как только я получаю эту ошибку для моего создания

Не удается преобразовать значение типа «Данные?»к ожидаемому типу аргумента 'Object'

func create<T: Object>(_ objects: [T]) where T: Codable {
        do {
            let placesData = try? JSONEncoder().encode(objects)
            try realm.write {
                realm.add(placesData)
            }
        } catch {
        }
    }

сохранение в UserDefaults выглядит следующим образом

private func putModelArray<T>(_ value: [T]?, forKey key: String) where T: Codable {
        guard let value = value else {
            storage.removeObject(forKey: key)
            return
        }
        let placesData = try? JSONEncoder().encode(value)
        storage.setValue(placesData, forKey: key)
    }

1 Ответ

0 голосов
/ 19 июня 2019

Это

realm.add(placesData)

принимает аргумент object при отправке на него Data

если вы получаете данные от json и для них вы используете Decodable, это не значит, что вы должны использовать Encodable

...