Est-il possible de sauvegarder un tableau d'objets dans Realm
? Chaque fois que je modifie le tableau, il doit être enregistré dans le royaume.
Ma solution actuelle consiste à enregistrer objet pour objet avec un for loop
. Pour ajouter/modifier des objets, appeler save()
fera l'affaire, mais pas lorsque je lui enlève un objet.
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)
}
}
}
}
Pour enregistrer des listes d'objets, vous devez utiliser un domaine List
, pas un tableau rapide.
let objects = List<CustomObject>()
Ensuite, vous pouvez ajouter des éléments:
objects.append(object1)
Jetez un oeil sur à de nombreuses relations et Collections sections de les documents officiels .
Swift 3
func saveRealmArray(_ objects: [Object]) {
let realm = try! Realm()
try! realm.write {
realm.add(objects)
}
}
Et ensuite, appelez la fonction en passant un tableau du domaine 'Object's:
saveRealmArray(myArray)
Remarque: realm.add (objets) a la même syntaxe que la fonction add pour un seul objet, mais si vous vérifiez avec l'auto-complétion, vous verrez qu'il existe: add (objects: Sequence)