如何将一个数组保存到Realm对象中?

3

我是新手使用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个回答

8

Realm有一个特殊的RLMArray类型,允许存储与父RLMObject相关联的RLMObject集合。例如,假设您有以下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的参考文档了解有关RLMArray的工作原理的更多信息:http://realm.io/docs/cocoa/0.80.0/api/Classes/RLMArray.html

2
你介意展示一下使用Objective-C的代码吗?我也遇到了这个问题。 - Afeez Aziz
1
我是否必须定义“别名”来存储例如ID数组? - Shai Mishali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接