Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 下载存储在RAM中?_Ios_Download_Nsurlconnection - Fatal编程技术网

Ios 下载存储在RAM中?

Ios 下载存储在RAM中?,ios,download,nsurlconnection,Ios,Download,Nsurlconnection,我有一个问题:我如何理解这一点: iOS注意:由于不鼓励直接下载到文件系统,因此iOS中不提供NSURLConnection类。请改用NSURLConnection类。有关详细信息,请参阅“使用NSURLConnection” 不可能将下载直接存储在文件系统中。但是,如果我改为使用“NSURLConnection”并下载一个文件(比如500MB),它是存储在RAM中还是存储在存储系统的临时文件夹中 如果存储在RAM中,是否可以直接将其保存到磁盘 感谢这意味着不鼓励直接下载到文件系统上的文件,这是

我有一个问题:我如何理解这一点:

iOS注意:由于不鼓励直接下载到文件系统,因此iOS中不提供NSURLConnection类。请改用NSURLConnection类。有关详细信息,请参阅“使用NSURLConnection”

不可能将下载直接存储在文件系统中。但是,如果我改为使用“NSURLConnection”并下载一个文件(比如500MB),它是存储在RAM中还是存储在存储系统的临时文件夹中

如果存储在RAM中,是否可以直接将其保存到磁盘


感谢

这意味着不鼓励直接下载到文件系统上的文件,这是桌面计算机常见的约定,但在iOS上很少见到

数据并不总是存储在RAM中,文件的大小可能会远远超过设备上可用的RAM数量,因为它相当有限。来自
NSURLConnection
的响应将存储在缓存中;它仍然会写入磁盘,但操作系统会跟踪它,而不是您的应用程序。因为这是一个应用程序开发人员不应该关心的操作系统实现细节,所以不能保证这些数据将存储在哪里,因此尽量不要通过文件系统直接访问它

当然,一旦从
NSURLConnection
接收到数据,您就可以在自己的控制下将数据保存到磁盘。为此,请使用设置您的
NSURLConnection
。重要的是正确设置您的
nsurlconnectionelegate

您感兴趣的方法是这个(这是一个必需的方法!)

一旦您有了可用的
NSData
,您就可以随心所欲地使用它了。如果要将此数据保存到磁盘,请参见如何执行此操作

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data