0
私は質問があります。ローカルファイルに画像をダウンロードすると、progressViewを表示します。
Imageをダウンロードして参考にする関数を書いています。
しかし、URLSessionDownloadTakの使用方法や他のダウンロードの進行状況を自分の関数で知る方法はわかりません。
イメージをダウンロードするにはどうすればいいですか?
は、これは私のダウンロード機能コードです:
func ImageFromUrl(imageView:UIImageView,url:String,chatroomId:String) {
let documentsDirectoryURL = try! FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("\(Image)/")
// create a name for your image
let fileName = url + ".jpg"
let fileURL = documentsDirectoryURL.appendingPathComponent(fileName)
let urlString = URL(string: url)
if let image = UIImage(contentsOfFile: fileURL.path)
{
imageView.image = image
return
}
DispatchQueue.global().async {
let data = try? Data(contentsOf: urlString!) //make sure your image in this url does exist, otherwise unwrap in a if let check/try-catch
if data != nil
{
if let image = UIImage(data: data!)
{
if !FileManager.default.fileExists(atPath: fileURL.path) {
if let jpegData = UIImageJPEGRepresentation(image, 0.001)
{
do {
try jpegData.write(to: fileURL, options: .atomic)
} catch {
debug(object: error)
}
}
} else {
debug(object:"file already exists")
}
DispatchQueue.main.async {
imageView.image = image//UIImage(data: data!)
}
}
}
}
}
それはだhttp://stackoverflow.com/a/38063937/4420355を見て迅速2、しかし原則は同じです – kuzdu