0

我有一个 iPhone 应用程序,我实现了一个UIDocumentPickerViewController. 一旦用户选择了PDF我收到URL的 PDF。

我正在尝试获取该 PDF 的数据,以便将其发送到我的服务器,但我得到以下响应:

Error Domain=NSCocoaErrorDomain Code=257 "The file “aaa.pdf” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/9C57E7F1-0997-4F57-A3EF-A7EFC3EF6158/File Provider Storage/aaa.pdf, NSUnderlyingError=0x282b43600 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

这就是我尝试将其转换为数据的方式:

        var documentData = Data()
        do {
            documentData.append(try Data(contentsOf: documentURL))
        } catch {
            throw Error.Creation
        }

我在某处读过沙盒应用程序无法读取文件,但是当我查看目标功能时,我什至看不到沙盒功能。

任何想法为什么会发生这种情况?谢谢

4

2 回答 2

2

更新到 Swift 5 - Xcode 12:

为了对您导入的文件具有读取权限,请添加asCopy: true到文档选择器:

let doc = UIDocumentPickerViewController(forOpeningContentTypes: types, asCopy: true)
于 2021-03-02T11:20:37.983 回答
1

好的,问题是我在创建文档选择器时使用的是“.open”而不是“.import”。那成功了。

于 2020-03-03T07:07:39.890 回答