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