如何在 RealmSwift 中使用数组或字典?
How to use Array or Dictionary in RealmSwift?
我试过 RealmSwift。
然后我保存了我的模型。
但是 RealmSwift 不支持 Array, Dic...
我能做什么?
import Foundation
import RealmSwift
class DumbData: Object {
@objc dynamic var myModel: [[String: String]]!
}
class ViewController: UIViewController {
...
let data = DumbData()
data.myModel = [["asdf": "1234"]]
let realm = try! Reaml()
try realm.write {
realm.add(data) // error. Realm Does not support Array, Dic...
}
...
}
数组在Realm中通常表示为List<T>
. This allows to handle many-to-many
关系。
Realm 不支持字典。但是可以用 2 类 和一对多的关系来实现。例如:
class User: Object {
dynamic var name = ""
let WhosebugQuestions = List<Question>()
}
class Question: Object {
dynamic var title = ""
dynamic var message = ""
// etc.
}
List是Realm中用来定义一对多关系的容器类型。
与 Swift 的 Array 一样,List 是一种泛型类型,它根据其存储的对象类型进行参数化。
如果你想通过 Realm 使用数组
var userMachines = List<Machine>()
并且如果您想在将数据保存到 Realm 后再次将其用作数组
使用
func fetchRealmMachine() -> [Machine]{
let realm = try! Realm()
let realmMachines = realm.object(ofType: UserSession.self)?.userMachines
return Array(realmMachines!)
}
结果将 return 作为数组
我试过 RealmSwift。
然后我保存了我的模型。 但是 RealmSwift 不支持 Array, Dic... 我能做什么?
import Foundation
import RealmSwift
class DumbData: Object {
@objc dynamic var myModel: [[String: String]]!
}
class ViewController: UIViewController {
...
let data = DumbData()
data.myModel = [["asdf": "1234"]]
let realm = try! Reaml()
try realm.write {
realm.add(data) // error. Realm Does not support Array, Dic...
}
...
}
数组在Realm中通常表示为List<T>
. This allows to handle many-to-many
关系。
Realm 不支持字典。但是可以用 2 类 和一对多的关系来实现。例如:
class User: Object {
dynamic var name = ""
let WhosebugQuestions = List<Question>()
}
class Question: Object {
dynamic var title = ""
dynamic var message = ""
// etc.
}
List是Realm中用来定义一对多关系的容器类型。 与 Swift 的 Array 一样,List 是一种泛型类型,它根据其存储的对象类型进行参数化。
如果你想通过 Realm 使用数组
var userMachines = List<Machine>()
并且如果您想在将数据保存到 Realm 后再次将其用作数组 使用
func fetchRealmMachine() -> [Machine]{
let realm = try! Realm()
let realmMachines = realm.object(ofType: UserSession.self)?.userMachines
return Array(realmMachines!)
}
结果将 return 作为数组