Ios 实际设备上的文件系统有问题

Ios 实际设备上的文件系统有问题,ios,swift3,file-manager,phasset,Ios,Swift3,File Manager,Phasset,我的问题是,当我试图将图像从照片库复制到文件系统时,我得到的错误是 (错误域=NSCocoaErrorDomain Code=257“文件”IMG_0926.JPG” 无法打开,因为您没有查看它的权限。“ UserInfo={NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG, NSUnderlyingError=0x15649630{Error Domain=NSPOSIXErrorDomain Code=1 “不允许操作”}}) 我

我的问题是,当我试图将图像从照片库复制到文件系统时,我得到的错误是

(错误域=NSCocoaErrorDomain Code=257“文件”IMG_0926.JPG” 无法打开,因为您没有查看它的权限。“ UserInfo={NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG, NSUnderlyingError=0x15649630{Error Domain=NSPOSIXErrorDomain Code=1 “不允许操作”}})

我的代码是:

let fileManager = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let document = fileManager[0]
    var i = 0
    for asset in arrayOfAssets {
        let filePath = document.appendingPathComponent("image\(arrayOfAssets.count + i).png")
        i += 1
        PHImageManager.default().requestImageData(for: asset, options: nil) { (data, nil, _ , info) in
            let url = info?["PHImageFileURLKey"] as! NSURL
            do {
                  try FileManager.default.copyItem(at: url as URL, to: filePath)

            }catch {
                print(error)
            }

           // print(filePath)
        }
    }
如果有人能帮我,请


谢谢大家

听起来你好像在试图打开一个位于此处的文件:
NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG

默认情况下,不允许访问此目录,出于安全原因,您只能访问位于文档目录中的文件


我在您的代码中找不到此URL的来源,但根据N错误,您正在尝试访问文件系统允许区域之外的图像。

听起来好像您正在尝试打开位于此处的文件:
NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG

默认情况下,不允许访问此目录,出于安全原因,您只能访问位于文档目录中的文件


我在您的代码中找不到此URL的来源,但根据N错误,您试图访问文件系统允许区域以外的图像。

请检查iOS 11中plist for Photos Library中的权限选项

您还可以将数据保存在临时目录中,并在需要时和使用后提取数据


清理临时目录中的数据。

请检查iOS 11中plist for Photos Library中的权限选项

您还可以将数据保存在临时目录中,并在需要时和使用后提取数据


清理临时目录中的数据。

从何处获取资产数组
arrayOfAssets
你能给我看一下这个数组数据填充代码吗?func collectionView(collectionView:UICollectionView,didSelectItemAt indexPath:indexPath){arrayOfAssets.append(phasset[indexPath.row])来自didSelectItemInCollectionView和阶段[indexPath.row]当我获取资产时,我从viewdidLoad获取它。您从何处获取资产数组
arrayOfAssets
你能给我看一下这个数组数据填充代码吗?func collectionView(collectionView:UICollectionView,didSelectItemAt indexPath:indexPath){arrayOfAssets.append(phasset[indexPath.row])我从didSelectItemInCollectionView和[indexPath.row]获取资产时从viewdidLoad获得它