是否可以保存一组对象Realm?每当我对数组进行更改时,都应将其保存到Realm.
我目前的解决方案是使用a保存对象的对象for loop.对于追加/修改对象,调用save()将完成工作,但不是从我删除对象时.
class CustomObject: Object {
dynamic var name = ""
dynamic var id = 0
override static func primaryKey() -> String? {
return "id"
}
}
struct RealmDatabase {
static var sharedInstance = RealmDatabase()
var realm: Realm!
let object0 = CustomObject()
let object1 = CustomObject()
var array = [object0, object1]
init() {
self.realm = try! Realm()
}
func save() {
for object in self.array {
try! self.realm.write {
self.realm.add(object, update: true)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
要保存对象列表,必须使用Realm List,而不是Swift Array.
let objects = List<CustomObject>()
Run Code Online (Sandbox Code Playgroud)
然后,您可以添加元素:
objects.append(object1)
Run Code Online (Sandbox Code Playgroud)
迅捷3
func saveRealmArray(_ objects: [Object]) {
let realm = try! Realm()
try! realm.write {
realm.add(objects)
}
}
Run Code Online (Sandbox Code Playgroud)
然后调用传递领域“对象”数组的函数:
saveRealmArray(myArray)
Run Code Online (Sandbox Code Playgroud)
注意:realm.add(objects)的语法与单个对象的add函数相同,但是如果您使用自动完成功能进行检查,则会发现:add(objects:Sequence)