画像のバックグラウンドダウンロードがトリガーされました。成功する - 位置は実際のイメージへのパスです。エラーメッセージは表示されませんが、画像は写真アプリに表示されません。私はNSPhotoLibraryUsageDescription Info.plistキーを設定しました。アプリには写真にアクセスする権利があります。私は知っている、このコードは別のバックグラウンドスレッドをトリガしますが、 "didFinishDownloadingTo"が終了した後も "location"ファイルが残っているので問題はありません。 JPGファイルをカメラロールに保存する際には何か面倒なことはありますか?ダウンロードした画像をPHPhotoLibraryのカメラロールに保存します。
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
PHPhotoLibrary.shared().performChanges({
print("starting")
let req = PHAssetCreationRequest.forAsset()
req.isFavorite = true;
let options = PHAssetResourceCreationOptions();
options.shouldMoveFile = true;
req.addResource(with: PHAssetResourceType.photo, fileURL: location, options: options)
})
}
"didFinishDownloadingTo location:URL"は、自分のサーバーからJPGをダウンロードします。私はむしろデコードし、再びエンコードするよりも、この生のjpgイメージを保存したいと思います。しかし、私はあなたのUIImageの代替が動作するかどうかを確認します。ありがとう! – Mick
performChanges内のコード行に対してデバッガが停止しません。 UIImageを使用してもこれまでのところ違いはありませんでした。なぜこのコードブロックが実行されていないのかわかりません。 – Mick
私は理解していません。私が物事をしている順序に注意してください。それ以外の場合は破壊されるので、UIImage _immediately_を抽出します。私が言ったことをしていますか? UIImageは抽出されていますか? 'performChanges'は呼ばれますか?バックグラウンドスレッドの場合は、メインスレッドのヘルプにステップしますか? – matt