【问题标题】:Do I have to bother about closing Realm database in Objective-C and Swift?我是否需要为在 Objective-C 和 Swift 中关闭 Realm 数据库而烦恼?
【发布时间】:2015-08-25 10:06:12
【问题描述】:

Java documentation for Realm class 有方法close。它写在方法细节中:“务必记住在完成后关闭 Realm 实例,以免泄漏内存、文件描述符或增大 Realm 文件的大小。”

Objective-C documentation for RLMRealm classSwift documentation for Realm class 都没有显示类似的内容。

我是否需要为在 Objective-C 和 Swift 中关闭 Realm 数据库而烦恼?为什么平台之间存在这些差异?

【问题讨论】:

  • 我没有直接回答您的问题,但我敢打赌,区别在于应用程序生命周期在不同操作系统上的处理方式。

标签: java objective-c swift realm


【解决方案1】:

不,您不必担心关闭数据库。

如果 Realm 不提供 close 方法,则关闭由 Realm 自己处理。正如您已经提到的,不同平台/操作系统之间存在差异。

【讨论】:

    【解决方案2】:

    差异是由于不同的内存管理方案。 Objective-C 和 Swift 是引用计数的,而 Dalvik 和 ART 上的 Java 使用标记和清除垃圾收集器。这意味着在 obj-c 和 swift 中,对象在对它们的最后一个引用被释放时(或者当自动释放池被耗尽时)就被释放,而在 Java 中,如果应用程序没有处于内存压力下,对象可能会保留任意长的时间.因此,Java 对象不能可靠地搭载自动内存管理来清理非内存资源,但 Objective-c 和 Swift 对象有时可以。

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多