Я создал структуру Repository
для работы с объектами базы данных Realm (изменения некоторых свойств, добавления новых объектов, удаления и т. Д.).Когда я хочу записать в базу данных, я должен сделать это внутри блока do-try-catch, поэтому я создал метод с завершением, который я вызываю каждый раз, когда мне нужно что-то записать в базу данных
private func action(_ completion: () -> Void) {
do {
try realm.write {
completion()
}
} catch {
print(error)
}
}
затем я вызываю методы для манипулирования объектами следующим образом:
func createObject(_ object: MyObject) {
action {
realm.add(object)
}
}
func deleteObject(_ object: MyObject) {
action {
realm.delete(object)
}
}
func setTitleForObject(_ object: MyObject, title: String) {
action {
object.title = title
}
}
...
У меня вопрос, есть ли способ, как я могу вызвать каждый метод внутри этой Repository
структуры внутри транзакции записи в do-try-catchблокировать по умолчанию вместо вызова его внутри завершения action
?(или есть какой-то лучший способ записи в базу данных Realm без блока do-try-catch?)