Realm Typecast выпуск Swift - PullRequest
0 голосов
/ 09 июня 2018

Мне нужно объявить свойство строки царства, чтобы сохранить значение, полученное из API, но проблема в том, что я не знаю, какой тип данных будет поступать с сервера.Иногда я получаю строковое значение, а иногда Int.Теперь, как я буду сохранять данные в области.

 class Fields: Object {
       @objc dynamic var default_value: String? = nil
    }

Ответ API

{
  access = 1;
  default_value = " ";
},
{
  access = 1;
  default_value = 20;
}

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Вы можете попробовать это решение

1- Класс объектов Relam

class Fields: Object {
    @objc dynamic private var default_value: String? = nil

    @objc var defaultValue: Any?{
        didSet{
            self.default_value = "\(defaultValue!)"
        }
    }
    open override class func ignoredProperties()->[String] {

        return ["defaultValue"]
    }
}

1- Проверить добавление объекта в свою БД

 let obj = Fields()
        obj.defaultValue = "ahmad"

        let obj2 = Fields()
        obj2.defaultValue = 1

        let realm = try! Realm()
        try! realm.write {

            realm.add([obj,obj2])
        }

3- Результат

enter image description here

0 голосов
/ 09 июня 2018

Это самое безопасное (где stringOrInt - это значение, которое вы получаете от API):

fieldsObject.default_value = stringOrInt as? String

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

fieldsObject.default_value = "\(stringOrInt)"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...