我正在使用 uidocumentbrowservc
,并希望以编程方式选择UIDocument
。就我而言,这是因为我想自动加载最后使用的UIDocument
来节省启动时的时间,因为我的应用很少会更改文档。
我的天真方法是将最后使用的URL
存储在UserDefaults
中。然后在我的uidocumentbrowservc
的viewDidLoad()
中,我致电presentDocument(at: URL)
。但这无效。当我致电URL.checkResourceIsReachable()
时,我会收到错误:
错误域= nscocoaerrordomain code = 257"文件" myfile"无法 由于您没有权限查看它而被打开。"
文件路径是:
/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/MyApp/myFile.
据我了解,我无法访问它,因为它不在我的沙箱中(用户可以保存在任何地方?(。
有什么建议吗?我相信有更好的方法可以做到这一点。
您不能仅保存URL。您还需要保存UIDBVC授予您的沙箱扩展。保存书签而不是URL将做到这一点。此外,如果用户移动文件(例如,在其他设备上的iCloud驱动器中重命名为Inside(,书签将继续工作。普通的URL不会。
查看URL的BookMarkData(选项:包括Resourcevaluesforkeys:relativeto :)具有选项。WITHSECURITYSCOPE和URLBYRYVINGBOOCBOOKMAKKDATA:选项:Relativetourl:bookmarkDataISstale:erry:error:error:error:>