NSURLConnection文件下载、SSZipArchive文件解压

1、小文件:NSData、NSURLConnection的block回调方式。设置代理方法在队列中执行:[对象 setDelegateQueue:]
2、大文件:NSURLConnection的代理方式使用NSFileHandle句柄 (NSURLConnectionDataDelegate)。
2、大文件:其实大文件还是建议使用NSURLSession或者第三方框架。
2、大文件:NSOutputStream。
3、下载图片:SDWebImage框架。


大文件下载思路:

response.suggestedFilename:获取文件的名字。
方法一:NSURLConnection
1、获取文件的总长度:通过响应头可以获取到文件的总长度。
2、接收到响应的时候获取文件的总长度,获取到文件 的缓存路径,创建一个空的文件。
3、接收到具体数据:根据一开始创建的文件生成一个句柄,指定数据的写入位置(seekToEndofFile文件内容的最后面),马上把数据写入 。并且NSFileHandle只需要创建一个就可以了。
4、数据接收完毕后NSFileHandl需要closeFile关闭并且设置为nil。
方法二:
1、接收到服务器响应时,NSOutputStream:根据地址创建输出流对象。利用NSOutputStream往path中写入数据initToFileAtPath:append:YES,yes代表往文件尾部追加数据。
1.1需要手动打开流,open当文件不存在时,会自动创建。
2、接收到服务器返回的数据时,写入文件write:maxlength:
3、关闭输入流close。


文件解压

大部分使用的是第三方框架SSZipArchive框架。需要导入libz库
使用cocoapods就不需要手动导入libz库


获取文件的MIMEType类型方法:

1、百度
2、对文件发送请求,通过返回的数据打印MIMEType
CFString类型转NSString需要桥接:添加(__bridge NSString*)来转换,反过来转换也一样。

你可能感兴趣的:(NSURLConnection文件下载、SSZipArchive文件解压)