我使用Realm
并且我喜欢它到目前为止,但现在我正试图找到一种方法来了解何时在Realm中写入对象。
让我们说我从Realm中删除对象:
func deleteObjects<T: Object>(objects: Results<T>)
{
let realm = Realm()
try! realm.write {
realm.delete(objects)
}
}
是否有一些现有方法可以让我知道何时从数据库中删除这些对象?类似的东西:
func deleteObjects<T: Object>(objects: Results<T>)
{
let realm = Realm()
try! realm.write {
realm.delete(objects, completion {
print("Objects deleted")
})
}
}
答案 0 :(得分:1)
Realm.delete(_:)
是同步操作,因此在调用返回时已删除对象。提交写入事务后,其他线程可以看到删除(即,您传递给写入的块完成),并且他们的Realms刷新以获取更改(通过显式调用Realm.refresh
或通过自动 - 刷新发生在下一个runloop迭代中。)
答案 1 :(得分:0)
Full documentation here for Realm
这是相关部分。
// Add to the Realm inside a transaction
try! realm.write {
realm.add(author)
}
并使用你的例子。
func deleteObjects<T: Object>(objects: Results<T>)
{
do {
let realm = try Realm()
try realm.write({
realm.delete(<#T##Object#>)
})
} catch {
print(error)
}
}
这是另一个例子,使用传递给函数的闭包。
func deleteObject(object: Object, completionClosure: () -> ()) {
if let realm = object.realm {
do {
try realm.write({
realm.delete(object)
completionClosure()
})
} catch {
print(error)
}
}
}