如何将数组保存到Realm对象

时间:2014-11-25 19:36:27

标签: arrays json swift realm

我是使用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结果中?

感谢。

1 个答案:

答案 0 :(得分:8)

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

RLMObject

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

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

因此,您只需使用以下API调用创建class Alias: RLMObject { dynamic var alias = "" } class Person: RLMObject { dynamic var name = "" dynamic var aliases = RLMArray(objectClassName: "Alias") } 对象:

Person

您可以从Realm的参考文档中了解Person.createInRealm(realm, withObject: jsonObject) 的工作原理:http://realm.io/docs/cocoa/0.80.0/api/Classes/RLMArray.html