[Swift通天遁地]四、网络和线程-(8)下载网络图片并实时显示下载进度

[Swift通天遁地]四、网络和线程-(8)下载网络图片并实时显示下载进度,第1张

概述本文将演示下载网络图片显示下载进度,并保存在沙箱目录中。 首先确保在项目中已经安装了所需的第三方库。 点击【Podfile】,查看安装配置文件。 1 source ‘https://github.com/CocoaPods/Specs.git‘2 platform :ios, ‘12.0‘3 use_frameworks!4 5 target ‘DemoApp’ do6

本文将演示下载网络图片,显示下载进度,并保存在沙箱目录中。

首先确保在项目中已经安装了所需的第三方库。

点击【Podfile】,查看安装配置文件。

1 source https://github.com/CocoaPods/Specs.git2 platform :ios,12.03 use_frameworks!4 5 target ‘DemoApp’ do6     pod Alamofire,~> 4.07 end

根据配置文件中的相关配置,安装第三方库。

然后点击打开【DemoApp.xcworkspace】项目文件。

在项目导航区,打开视图控制器的代码文件【VIEwController.swift】

现在开始编写代码,实现一个简单的功能:下载一个文件,并将该文件存储在沙箱中。

 1 import UIKit 2 //在当前的类文件中,引入已经安装的第三方类库 3 import Alamofire 4  5 class VIEwController: UIVIEwController { 6     //视图加载完成的方法 7     overrIDe func vIEwDIDLoad() { 8         super.vIEwDIDLoad() 9         // Do any additional setup after loading the vIEw,typically from a nib.10         //简单的图片下载功能11         simpleDownload()12 13         //实时显示下载进度的图片下载功能14         complexDownload()15     }16     17     //添加一个方法,18     //通过访问服务器的接口,下载并保存一个文本文件19     func simpleDownload()20     {21         //初始化一个下载请求对象,并设置下载后的存储目录,位于沙箱的文档目录中。22         let destination = DownloadRequest.suggestedDownloadDestination(23             for: .documentDirectory,24             in: .userDomainMask25         )26         //在控制台输出沙箱中的文档目录,27         //使用这条日志信息,进入该目录并查看下载后的文件。28         print(NSHomeDirectory()+"/documents")29         30         //调用网络 *** 作库的下载方法,下载指定的服务器接口,31         //并将下载后的文件存储在指定的目录中。32         let result = Alamofire.download("https://httpbin.org/stream/1",to: destination)33         //控制台输出结果34         print(result)35     }36     37     //添加一个方法,38     //实现一个可实时显示下载进度的图片下载功能39     func complexDownload()40     {41         //初始化一个下载请求对象,并设置下载后的存储目录,位于沙箱的文档目录中。42         let destination = DownloadRequest.suggestedDownloadDestination(43             for: .documentDirectory,44             in: .userDomainMask45         )46         47         //还可以设置服务器接口的请求参数48         let parameters: Parameters = ["foo": "bar"]49         50         //调用网络 *** 作库的下载方法,下载指定的服务器接口,51         //并将下载后的文件存储在指定的目录中。52         Alamofire.download("http://images.apple.com/v/home/cx/images/gallery/iphone_large_2x.jpg",53                             method: .get,54                             parameters: parameters,55                             enCoding: JsONEnCoding.default,56                             to: destination)57             //通过一个下载进度方法块,处理图片下载的事件58             .downloadProgress(queue: dispatchQueue.global())59             {60                 progress in61                 //在控制台输出:进度的完成比例62                 print("Progress1: \(progress.fractionCompleted)")63                 //在控制台输出:已经下载的字节数64                 print("Progress2: \(progress.completedUnitCount)")65                 //在控制台输出:全部的字节数66                 print("Progress3: \(progress.totalUnitCount)")67             }68             //完成的图片的下载后执行验证方法,此处返回成功标识69             .valIDate { request,response,temporaryURL,destinationURL in70                 return .success71             }72             //处理图片下载后的返回信息73             .responseJsON { response in74                 //在控制台输出:网络返回对象75                 deBUGPrint("response:\(response)")76                 //在控制台输出:图片下载临时存放的位置77                 print("response.temporaryURL:\(response.temporaryURL)")78                 //在控制台输出:下载后的存储位置79                 print("response.destinationURL:\(response.destinationURL)")80             }81     }82 83     overrIDe func dIDReceiveMemoryWarning() {84         super.dIDReceiveMemoryWarning()85         // dispose of any resources that can be recreated.86     }87 }
总结

以上是内存溢出为你收集整理的[Swift通天遁地]四、网络和线程-(8)下载网络图片并实时显示下载进度全部内容,希望文章能够帮你解决[Swift通天遁地]四、网络和线程-(8)下载网络图片并实时显示下载进度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1021182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存