是否可以将对象数组保存到Realm
?每当我对数组进行更改时,都应将其保存到Realm。
我目前的解决方案是使用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)
}
}
}
}
答案 0 :(得分:7)
要保存对象列表,您必须使用领域List
,而不是Swift数组。
let objects = List<CustomObject>()
然后,您可以添加元素:
objects.append(object1)
答案 1 :(得分:4)
Swift 3
func saveRealmArray(_ objects: [Object]) {
let realm = try! Realm()
try! realm.write {
realm.add(objects)
}
}
然后调用函数传递一个领域'Object'的数组:
saveRealmArray(myArray)
注意:realm.add(objects)与单个对象的add函数具有相同的语法,但如果使用自动完成检查,则会看到:add(objects:Sequence)