【问题标题】:Reliably getting local realm path可靠地获取本地领域路径
【发布时间】:2017-10-22 15:02:52
【问题描述】:

我发现要获取领域路径,一般都是这样用的:

Realm.Configuration.defaultConfiguration.fileURL

但据我了解,例如在使用同步领域时,可以覆盖默认配置 - 在这种情况下,我不确定此默认路径返回什么。有时它也只是 nil。

我需要本地路径的原因是能够将本地领域迁移到同步领域,如下所述:https://github.com/realm/realm-cocoa/issues/5381

我看到这些配方使用Bundle.main.url 来获取领域的路径,但通常它似乎存储在Documents 目录中(我做错了什么吗?)。所以我这样定义路径:

let documentsDirectoryUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! documentsDirectoryUrl.appendingPathComponent("default.realm")

这似乎可行,但我不确定这是否安全,因为我假设这将始终是默认路径...除非我在应用启动时在默认配置中设置此路径。

这里有什么推荐的方法吗?

【问题讨论】:

    标签: ios realm realm-mobile-platform


    【解决方案1】:

    你误解了一些东西。本地 Realm 的路径应该由您决定。

    如果您想使用默认存储位置而不更改默认值,可以使用Realm.Configuration.defaultConfiguration.fileURL。如果有可能覆盖defaultConfiguration,您可以在覆盖之前保存该值。或者您提到的以下方法也有效。

    let documentsDirectoryUrl = FileManager.default.urls (for: .documentDirectory, in: .userDomainMask) .last!
    documentsDirectoryUrl.appendingPathComponent ("default.realm")
    

    那是因为iOS上的默认存储位置被确定为上述位置。

    【讨论】:

    • 抱歉延迟接受这个,还没来得及检查 - 会尽快做!
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2011-11-02
    • 2013-04-23
    • 2011-05-16
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多