可靠地获得本地领域的路径

时间:2017-10-22 15:02:52

标签: ios realm realm-mobile-platform

我发现要获取领域路径,通常会使用:

Realm.Configuration.defaultConfiguration.fileURL

但据我所知,当使用同步域时,可以覆盖默认配置 - 在这种情况下,我不确定这个默认路径返回什么。有时它也只是零。

我需要本地路径的原因是能够将本地域迁移到同步域,如下所述: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")

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

这里有任何推荐的方法吗?

1 个答案:

答案 0 :(得分:0)

你犯了一些被误解的东西。当地王国的道路应该是你决定的。

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

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

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