如何将数组保存到Realm对象

ZW2*_*652 3 arrays json realm swift

我是使用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"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

jps*_*sim 8

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

{
  "name": "John Doe",
  "aliases": [
    {"alias": "John"},
    {"alias": "JD"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

class Alias: RLMObject {
  dynamic var alias = ""
}

class Person: RLMObject {
  dynamic var name = ""
  dynamic var aliases = RLMArray(objectClassName: "Alias")
}
Run Code Online (Sandbox Code Playgroud)

因此,您只需Person使用以下API调用创建对象:

Person.createInRealm(realm, withObject: jsonObject)
Run Code Online (Sandbox Code Playgroud)

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

  • 你介意用Objective-C显示代码吗?我也面临这个问题. (2认同)