我发现要获取领域路径,通常会使用:
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")
这似乎有效,但我不确定这是否安全,因为我假设这将始终是默认路径...除非我在应用程序启动时将此路径设置为默认配置。
这里有任何推荐的方法吗?
答案 0 :(得分:0)
你犯了一些被误解的东西。当地王国的道路应该是你决定的。
如果要在不更改默认存储位置的情况下使用默认存储位置,则可以使用Realm.Configuration.defaultConfiguration.fileURL
。如果有可能覆盖defaultConfiguration
,您可以在覆盖之前保存该值。或者您提到的以下方法也是有效的。
let documentsDirectoryUrl = FileManager.default.urls (for: .documentDirectory, in: .userDomainMask) .last!
documentsDirectoryUrl.appendingPathComponent ("default.realm")
这是因为iOS上的默认存储位置被确定为上述位置。