问题描述
当我点击我的应用程序在iOS文件管理器中支持的文件时,我的应用程序委托方法
private func open(url: URL,options: [UIApplication.OpenURLOptionsKey : Any]?)->Bool
在我读取文件的地方被叫
do {
try fileData = Data(contentsOf: url)
}
catch {
print(error.localizedDescription)
}
给出错误257(未授权)。 使用文档选择器访问相同文件时:
func documentPicker(_ controller: UIDocumentPickerViewController,didPickDocumentAt URL: URL) {
if controller.documentPickerMode == UIDocumentPickerMode.import {
var fileData : Data
do {
try fileData = Data(contentsOf: URL)
}
catch {
print(error.localizedDescription)
}
}
一切正常。我得到一个可以使用的数据对象。我注意到的一件事是AppDelegate方法获取的URL形式为
/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Downloads/filename
在documentPicker回调获取时
/private/var/mobile/Containers/Data/Application/7A30D4D7-BD7D-4051-B3DE-143E18F48B23/tmp/myAppIndentifier-Inbox/filename
根据建议here添加--
let result = url.startAccessingSecurityScopedResource()
没有改变。我的“支持就地打开文档” plist键设置为TRUE。有人知道吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)