URL加载
URL加载系统中的类,往往被用来获取URL指定的内容。你可以通过多种方法获取网络内容,这取决于你的应用需求。API的选择一方面取决于OS X或iOS系统的版本,另一方面取决于获取的内容放在文件里,还是放在内存里。
- IOS >= 7.0或OS X >= 10.9,推荐使用NSURLSession完成URL请求。
- 对于想支持老版本OS X的软件,你可以使用NSURLDownload下载URL指定的内容到某个文件。
- 对于想支持老版本IOS或OS X的软件,你可以使用NSURLConnection下载URL指定的内容到内存,然后你自己再将数据写到磁盘上的某个文件里。
你所采用的方法大部分取决于你是否希望将获取的数据存放在内存还是直接存放到磁盘上的文件里。
获取的数据存放在内存
在高层接口中,有两个基本的方法用来获取URL数据到内存。
- 对于简单的请求,使用 NSURLSession API来直接获取NSURL指定的内容,既可以直接存放在内存,也可以直接存放到文件。
- 对于复杂的请求,比如上传数据,需要提供一个NSURLRequest对象(或NSMutableURLRequest对象)结合NSURLSession 或 NSURLConnection一起发送请求。
- 提供完成处理block,URL加载类会在接收完数据时调用这个block。
- 实现代理协议,每当URL加载类收到数据时,它会调用你的代理方法。这样你必须负责追加数据,直到所有body数据都返回。
相关章节:Using NSURLSession,Using NSURLConnection
获取的数据直接存放到磁盘上的文件里
在高层接口中,有两个基本方法下载URL指定的内容到指定的磁盘文件。
- 对于简单的请求,使用NSURLSession直接获取NSURL指定的内容,既可以直接存放在内存,也可以直接存放到文件。
- 对于复杂的请求,比如上传数据,需要提供一个NSURLRequest对象(或NSMutableURLRequest对象)结合NSURLSession 或NSURLDownload一起发送请求。
注意:通过NSURLDownload或NSURLSession实例初始化的下载不能缓存。如果你需要缓存结果,你的应用必须用NSURLConnection 或 NSURLSession,并且自己将数据写到磁盘上。
相关章节:Using NSURLSession,Using NSURLDownload