私は

2016-09-27 4 views
1

私の問題は、(エラードメイン= NSCocoaErrorDomainコードエラーが私は

である私は、ファイルシステムへのフォトライブラリから画像をコピーしようとすると、私はエラーを取得している実際のデバイス上のファイルシステム上の問題を持っています= 257 "ファイル" IMG_0926.JPG " は、閲覧権限がないため開けませんでした"UserInfo = {NSFilePath =/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG、 NSUnderlyingError = 0x15649630 {エラードメイン= NSPOSIXErrorDomainコード= 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) 
     } 
    } 

してください誰かが私に

おかげで、すべての

+0

アセットの配列はどこですか? 'arrayOfAssets'あなたは私にこの配列データの塗りつぶしコードを表示できますか? – CodeChanger

+0

FUNCのcollectionView(_ collectionView:UICollectionView、didSelectItemAt indexPath:IndexPath){ arrayOfAssets.append(phasset [indexPath.row]) } didSelectItemInCollectionViewから –

+0

iはフェッチ場合[indexPath.row]私はのviewDidLoadからそれを得る段階資産 –

答えて

0

を助けることができる場合は、ここにあるファイルを開くしようとしているようですね:デフォルトではNSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG

をこのディレクトリへのアクセスは許可されていません。セキュリティ上の理由から、ドキュメントディレクトリにあるファイルにしかアクセスできません。

あなたのコードではなく、ファイルシステムの許可された領域外の画像にアクセスしようとしているNSErrorに基づいて、このURLがどこにあるのかわかりません。

0

また、あなたがTEMPディレクトリにデータを保存することができます

iOSの11の写真ライブラリ用のplistで許可オプションをチェックし、TEMPディレクトリに

クリーンなデータを必要なときにそれを取得し、使用後にしてください。