【发布时间】:2019-05-04 12:10:32
【问题描述】:
我创建了 struct 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 结构中的每个方法,而不是在action 的完成中调用它? (或者是一些更好的方法如何在没有 do-try-catch 块的情况下写入 Realm 数据库?)
【问题讨论】: