我是使用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结果中?
感谢。
答案 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