下载功能是ios 开发中必须掌握的一个功能,今天简单的介绍一下下载功能的实现;
下载功能的实现
每次下载的字节数是在分段下载的时候用到的;大小根据你要下载的资源大小自行确定

本文以下载图片为例:
下载的方法,里面注释掉的while循环是在分段下载的时候会用到的,如果需要分段下载,就按照下面的算法将文件分段下载并且对url进行了加密,他能保证每次产生的文件都不同,如果不了解MD5,将它注掉即可;在下载的时候最好使用多线程,如下图
对URl进行加密,因为你看到的会少文件,如果你不会加密,这段代码就可以删掉

5.下载方法:

1,我们既然要下载,就必须有一个URL,并且先获取到资源的大小,只有获取到文件的大小,我们才能确定下载数据大小,如果在下载下来的资源和源资源大小不一致,文件极容易损坏

2.下载字节范围内的数据包 ,如果不是分段下载,则一次下载完成,调用appendData方法写入文件,如果需要分段下载,就要追加文件;(追加的方法在本方法下面的appendData方法)

3,创建文件并且写入,如果是分段下载需要追加,就将下面注释掉的else后面的代码打开

//4.获取本地文件信息,在上面的下载方法里面调用做判断,是为了避免重复下载,只要我们下载了并且写入了文件,在下次运行前我们做判断;

网友评论