【发布时间】:2022-11-10 00:50:01
【问题描述】:
是否有一种万无一失的方法来保存 UIDocument 的 URL,以便应用程序可以在下次启动时继续编辑文档?
我尝试了各种保存 URL 的方法,但有时文档 URL 会与预期的略有不同。
例如,下面的代码:
var scoresURL = FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first!
可能会返回这个:
file:///var/mobile/Containers/Data/Application/50E947C1-7A30-40A0-8BB6-1C3BB41A1218/Documents
但是使用 UIDocumentBrowserViewController 加载的文档可能会将 UIDocument 的 fileURL 路径设置为:
file:///private/var/mobile/Containers/Data/Application/50E947C1-7A30-40A0-8BB6-1C3BB41A1218/Documents
正是这些细微的差异让我怀疑我是否只是通过维护 MRU 列表做错了事情。
这些问题仅出现在实际设备上。模拟器的路径是稳定的,至少直到模拟器决定重置其状态的任意时间。
【问题讨论】:
-
根据文档的动态包路径前缀和固定后缀构建路径 - 存储后缀,可能在 UserDefaults 或应用程序容器中
-
看看这个信息:developer.apple.com/documentation/foundation/userdefaults 尤其是章节:
Persisting File References,它讨论了使用 NSURL 书签数据。
标签: ios swift objective-c uidocument uidocumentbrowserviewcontroller