领域 - 对象映射和持久化AnyObject类型

时间:2016-07-18 11:36:15

标签: ios json swift realm

我正在构建一个两个架构都相同的应用程序(DB& LocalDB)。

这是一个很好的原因,一行代码Realm正在解析我从服务器获得的JSON。

if let JSON = response.result.value {
    let realm = try! Realm()

    do {
        try realm.write {
            realm.create(EMApplication.self, value:JSON, update: true)
        }
    } catch {
        print("Something went wrong!")
    }                   
}

唯一的问题是Realm要求为我设置的每个属性专门提供一个类型,但我至少有一个属性我想用AnyObject类型:

class EMAnswer: Object {
    var id = RealmOptional<Int>()

    dynamic var name: String?

    var value: AnyObject?

    var staus: Status?
    var answerType: AnswerType?
}

我的愿望是为Realm找到一种方法来理解value可以是任何类型并相应地解析它。或者我是否需要采用另一条路径来解析JSON?

1 个答案:

答案 0 :(得分:1)

无法将AnyObject属性放入Realm Object模型子类中。它必须是受支持的基本类型之一,Realm ObjectList对象的Object对象。

如果对象以JSON形式出现,那么最简单的方法就是使value成为String属性,这样就可以将JSON中的数据保存为原始状态。然后,您可以稍后检查value的值,并从中确定其类型。