【问题标题】:How to save an array to a Realm Object如何将数组保存到领域对象
【发布时间】:2014-11-25 19:36:26
【问题描述】:

我是使用 Realm 的新手。有没有一种简单的方法可以将数组保存到领域对象?我从 JSON REST 调用接收数据:

class SomeClass: RLMObject {

    dynamic var id = 0
    dynamic var name = ""
    dynamic var array: NSArray


    func checkForUpdates() {
        // Download JSON data here... The results have an array inside of them.

        SomeClass.createOrUpdateInDefaultRealmWithObject(SomeNSDictionary)         


    }

    override class func primaryKey() -> String! {
        return "id"
    }
}

是否可以将数组保存在 Realm 中的 JSON 结果中?

谢谢。

【问题讨论】:

    标签: arrays json swift realm


    【解决方案1】:

    Realm 有一个特殊的RLMArray 类型,它允许存储绑定到父RLMObjectRLMObject 的集合。例如,假设您有以下 JSON:

    {
      "name": "John Doe",
      "aliases": [
        {"alias": "John"},
        {"alias": "JD"}
      ]
    }
    

    您可以使用以下类对此进行建模:

    class Alias: RLMObject {
      dynamic var alias = ""
    }
    
    class Person: RLMObject {
      dynamic var name = ""
      dynamic var aliases = RLMArray(objectClassName: "Alias")
    }
    

    因此,您可以使用以下 API 调用简单地创建一个 Person 对象:

    Person.createInRealm(realm, withObject: jsonObject)
    

    您可以从 Realm 的参考文档中了解有关 RLMArrays 工作原理的更多信息:http://realm.io/docs/cocoa/0.80.0/api/Classes/RLMArray.html

    【讨论】:

    • 您介意使用 Objective-C 显示代码吗?我也面临这个问题。
    • 我是否必须定义“别名”jsut 来存储 ID 数组?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多