我究竟该如何捕获RealmSwift的添加/删除错误?
即
do {
try realm.write {
realm.delete(MyRealmObject())
}
completion(true)
} catch {
completion(false)
}
在此示例中,我故意尝试删除刚刚组成的RealmObject(以使其失败),但是它没有捕获,而是出现此错误:
由于未捕获的异常“ RLMException”而终止应用程序,原因:“只能从其所属领域删除对象。”
我还没有看到有人处理特定的删除/添加错误的示例-这是有原因的吗?
答案 0 :(得分:0)
领域开发人员使用其自定义描述NSError
扩展Can only delete an object from the Realm it belongs to
类,并在他们期望的错误的预定义列表中进行FatalError
(这可能是为了很好地利用其库来提供帮助)开发人员正确使用它)),因此他们不会throw
try
可以catch
答案 1 :(得分:0)
不确定这是否是您要查找的内容,但是以下代码捕获并标识了特定的添加错误。但是,访问不同领域实例的错误的处理方式不同。所以从这个开始...
Take coffee to go
然后展开...。执行以下操作,以确保要删除的对象与您要从中删除对象的领域匹配。
class MyObject: Object {
@objc dynamic msg = ""
}
do {
let realm = try Realm()
let a0 = MyObject()
a0.msg = "Hello, World"
try! realm.write {
realm.add(a0)
}
} catch let error as NSError {
print(error.localizedDescription)
}