Realm Typecast问题Swift

时间:2018-06-09 07:54:56

标签: ios swift realm

我必须声明领域字符串属性以保存API的值get,但问题是,我不知道哪种类型的数据将来自服务器。 有时我得到字符串值,有时候是Int。 现在我将如何将数据保存到领域。

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

API响应

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

2 个答案:

答案 0 :(得分:0)

这是最安全的(stringOrInt是您从API接收的价值):

fieldsObject.default_value = stringOrInt as? String

但您也可以使用字符串插值并将值直接注入字符串文字:

fieldsObject.default_value = "\(stringOrInt)"

答案 1 :(得分:0)

您可以尝试此解决方案

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