我有一个问题:我如何理解这一点:
“iOS 注意:NSURLDownload 类在 iOS 中不可用,因为不鼓励直接下载到文件系统。请改用 NSURLConnection 类。有关更多信息,请参阅“使用 NSURLConnection”。”
无法将下载内容直接存储在文件系统中。但是,如果我改用“NSURLConnection”并下载一个文件(可以说它像 500MB),它是存储在 RAM 中还是存储在存储系统中的临时文件夹中?
如果它存储在 RAM 中,是否可以直接将其保存到磁盘?
谢谢
我有一个问题:我如何理解这一点:
“iOS 注意:NSURLDownload 类在 iOS 中不可用,因为不鼓励直接下载到文件系统。请改用 NSURLConnection 类。有关更多信息,请参阅“使用 NSURLConnection”。”
无法将下载内容直接存储在文件系统中。但是,如果我改用“NSURLConnection”并下载一个文件(可以说它像 500MB),它是存储在 RAM 中还是存储在存储系统中的临时文件夹中?
如果它存储在 RAM 中,是否可以直接将其保存到磁盘?
谢谢
这意味着不鼓励直接下载到文件系统上的文件,这是桌面计算机常见的约定,但在 iOS 上很少见。
数据并不总是存储在 RAM 中,文件的大小可能远远超过设备上可用的 RAM 量,因为它相当有限。来自 a 的响应NSURLConnection将存储在缓存中;它仍然被写入磁盘,但操作系统会跟踪它,而不是你的应用程序。因为这是一个操作系统实现细节,应用程序开发人员不应该关心它,所以不能保证这些数据将存储在哪里,因此尽量不要通过文件系统直接访问它。
一旦您从NSURLConnection. 为此,请设置您的NSURLConnection使用本指南。重要的是正确设置您的NSURLConnectionDelegate。请参阅有关协议的此文档。
您感兴趣的方法是这个(无论如何这是必需的方法!)
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
一旦有了NSData可用的资源,您就可以随心所欲地使用它。您保存将此数据保存到磁盘,请参阅NSData上的文档以了解如何执行此操作。