【问题标题】:How much time does Realm take for a write transaction to perform an Object add?一个写事务执行一个对象添加需要多长时间?
【发布时间】:2015-12-22 17:01:54
【问题描述】:

我有一个带有 Realm 数据源的集合视图。如果我在写入事务中添加或更新领域对象,然后立即尝试从数据源重新获取,当然新的写入还没有完成。因此,我目前正在做的是在重新获取之前添加 0.1 秒的延迟。

我的问题是,有没有更好的方法?如果不是,正常的 Realm 写入 > 添加事务需要多长时间(0.0001 秒或 0.01 秒等)? 谢谢!

【问题讨论】:

    标签: ios datasource realm


    【解决方案1】:

    如果您没有立即看到 Realm 文件的更新,您可以在 RLMRealm / Realm 对象上调用 refresh 以手动强制刷新。

    通常,在运行循环的下一次迭代中,所有线程上的所有 Realm 对象都会更新更改(您也可以通过像上面那样引入时间延迟来实现!),但调用 refresh 将导致该版本的在运行循环的当前迭代完成之前要更新的 Realm 对象。

    【讨论】:

    • 感谢@Tim - 根据您的解释,我找到了在下一个循环中运行的方法:stackoverflow.com/questions/7096203/…。你说“正常”,所以时不时有例外?对于大型 NSData,我可以看到这一点。还有其他情况吗?
    • 没问题!是的,您可以根据需要选择禁用此自动刷新行为,然后明确要求在 Realm 对象上调用 refresh 以获得最新更新。
    • 那么当自动刷新开启时(默认情况下),它保证会在下一次运行时刷新吗?即使对于大型 NSData?只想说清楚:)
    • 是的。 :) Realm 在您加载属性时会延迟加载它们,因此在您实际调用它之前,它实际上不会加载NSData。无论如何,如果这是一个问题,我建议对其进行测试以确保它适用于您的应用程序的实现。 :)
    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 2011-05-02
    • 2023-03-23
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    相关资源
    最近更新 更多