ios - Swift Realm Write方法是Sync或Async Thread

标签 ios swift realm

我在我的项目中使用 Realm,我想知道 realm.write() 方法是否是同步的。 我的例子在这里:

 let realm = try! Realm()
    try! realm.write {
        realm.delete(message)
    }
    realm.invalidate()

在上面的例子中,我正在删除一个 Realm 对象和我写的外括号 invalidate()

这是我的困惑:

  1. 如果write()是同步的,那么invalidate()就可以了

  2. 如果 Async 比之前 write invalidate 会调用,realm 会释放但操作在后台运行

谢谢

最佳答案

Realm.write 是同步的。 It just calls realm.beginWrite()/realm.commitWrite() with some error handling :

public func write(_ block: (() throws -> Void)) throws {
    beginWrite()
    do {
        try block()
    } catch let error {
        if isInWriteTransaction { cancelWrite() }
        throw error
    }
    if isInWriteTransaction { try commitWrite() }
}

关于ios - Swift Realm Write方法是Sync或Async Thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41630594/

相关文章:

ios - Realm swift : No such module 'RealmSwift'

ios - UIAlertView 中变量的占位符?

ios - barbuttonitem 现在显示,presentmodalviewcontroller

swift - 当列表中的最后一项是 HStack 时,应用程序崩溃

swift - SWRevealViewController 隐藏前 View 的导航栏

ios - 写入 Realm 数据库时崩溃

ios - 如何以编程方式在 iOS 的 iAds 横幅上显示广告

javascript - 键盘在 Android 和 BlackBerry 中未显示在元素焦点上

ios - 在 Swift 3 中添加单元格之间的空间

swift - 追加到持久 Realm 对象的列表属性?