【问题标题】:Asynchronous writes to Realm异步写入 Realm
【发布时间】:2018-01-26 14:27:44
【问题描述】:

应用通过许多异步 API 调用从服务器获取数据。当接收到数据时,它会被处理并存储到 Realm 中。显然,当写入发生在同一时间时,beginWriteTransaction 会使应用程序崩溃,因为 Realm 已经处于写入事务中。

这里最好的方法是什么?将所有写入放入串行调度队列?

【问题讨论】:

  • 不要在没有commit()的情况下打电话给beginWriteTransaction()
  • @EpicPandaForce 我在向 Realm 写入数据的每个块的末尾调用 commitWriteTransaction。
  • @EpicPandaForce 我刚刚阅读了你关于 Realm 的文章,我发现我使用了 beginWriteTransaction 和 commitWriteTransaction 的愚蠢方式。但是即使使用transactionWithBlock,我仍然需要一些异步方法来避免由于重叠事务而导致的崩溃,对吧?

标签: ios objective-c realm


【解决方案1】:

尝试在 transactionWithBlock 方法中更新领域。

RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{
    [realm addObject:mydog];
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多