オブジェクトの配列を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)
}
}
}
}
_
Swift
func saveRealmArray(_ objects: [Object]) {
let realm = try! Realm()
try! realm.write {
realm.add(objects)
}
}
次に、レルム「オブジェクト」の配列を渡して関数を呼び出します。
saveRealmArray(myArray)
注:realm.add(objects)の構文は、単一オブジェクトのadd関数と同じですが、オートコンプリートで確認すると、次のように表示されます:add(objects:Sequence)