Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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 将大文件加载到iphone会填充ram内存-xcode_Ios_Iphone_Ram - Fatal编程技术网

Ios 将大文件加载到iphone会填充ram内存-xcode

Ios 将大文件加载到iphone会填充ram内存-xcode,ios,iphone,ram,Ios,Iphone,Ram,我在下载文件时遇到问题。我有一个90 MB的zip文件,在下载该文件之前,它一直在填充我的RAM内存。有人能帮我用一些示例代码来说明如何更好地做到这一点,并且不使我的RAM过载吗 谢谢 代码: 你可能想考虑一下。它可能是访问互联网最常用的图书馆。您可以使用它下载文件并获取输出流并将数据写入文件。这将允许您以数据块的形式下载和写入文件,而不是一次下载和写入所有数据。您需要查看以获取有关下载该文件的信息。您还需要查看文档,了解如何将数据写入文件。 < P>您可能需要考虑查看。它可能是访问互联网最常用

我在下载文件时遇到问题。我有一个90 MB的zip文件,在下载该文件之前,它一直在填充我的RAM内存。有人能帮我用一些示例代码来说明如何更好地做到这一点,并且不使我的RAM过载吗

谢谢

代码:



你可能想考虑一下。它可能是访问互联网最常用的图书馆。您可以使用它下载文件并获取输出流并将数据写入文件。这将允许您以数据块的形式下载和写入文件,而不是一次下载和写入所有数据。您需要查看以获取有关下载该文件的信息。您还需要查看文档,了解如何将数据写入文件。

< P>您可能需要考虑查看。它可能是访问互联网最常用的图书馆。您可以使用它下载文件并获取输出流并将数据写入文件。这将允许您以数据块的形式下载和写入文件,而不是一次下载和写入所有数据。您需要查看以获取有关下载该文件的信息。您还需要查看文档,了解如何将数据写入文件。

< P>您可能需要考虑查看。它可能是访问互联网最常用的图书馆。您可以使用它下载文件并获取输出流并将数据写入文件。这将允许您以数据块的形式下载和写入文件,而不是一次下载和写入所有数据。您需要查看以获取有关下载该文件的信息。您还需要查看文档,了解如何将数据写入文件。

< P>您可能需要考虑查看。它可能是访问互联网最常用的图书馆。您可以使用它下载文件并获取输出流并将数据写入文件。这将允许您以数据块的形式下载和写入文件,而不是一次下载和写入所有数据。您需要查看以获取有关下载该文件的信息。您还需要查看文档,以获取有关如何将数据写入文件的信息。

发布一些代码,如果没有这些代码,我们将看不到发生了什么。很抱歉,我粘贴了我的代码。您的问题是,在试图将整个下载内容保存到内存中时,您不应使用任何带有内容的
*作为internet URL:
。使用
URLConnection
URLSession
。最好还是像Aaron Heyman建议的那样使用
AFNetworking
。发布一些代码,没有它我们就看不到发生了什么。对此很抱歉,我粘贴了我的代码。你的问题是,试图将整个下载内容保存在内存中,你永远不应该使用任何
*和contentsofURL:
作为internet URL。使用
URLConnection
URLSession
。最好还是像Aaron Heyman建议的那样使用
AFNetworking
。发布一些代码,没有它我们就看不到发生了什么。对此很抱歉,我粘贴了我的代码。你的问题是,试图将整个下载内容保存在内存中,你永远不应该使用任何
*和contentsofURL:
作为internet URL。使用
URLConnection
URLSession
。最好还是像Aaron Heyman建议的那样使用
AFNetworking
。发布一些代码,没有它我们就看不到发生了什么。对此很抱歉,我粘贴了我的代码。你的问题是,试图将整个下载内容保存在内存中,你永远不应该使用任何
*和contentsofURL:
作为internet URL。使用
URLConnection
URLSession
。当然,还是要像Aaron Heyman建议的那样使用
AFNetworking
。我也有同样的问题,我建议看一下我问题的答案,它会更详细一点:谢谢!我建议大家看看我的问题的答案,更详细一点:谢谢!我建议大家看看我的问题的答案,更详细一点:谢谢!我建议大家看看我的问题的答案,更详细一点:谢谢!工作得很有魅力
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
    NSURL *url = [NSURL URLWithString:@"http://autoskola.1e29g6m.xip.io/mobileData/slike3.zip"];
    NSError *error = nil;

    NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error];


    if(!error){
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
        NSString *path = [paths objectAtIndex:0];
        NSString *zipPath = [path stringByAppendingPathComponent:@"slike3.zip"];

        [data writeToFile:zipPath options:0 error:&error];

        if(!error){

            //unziping the files
            ZipArchive *za = [[ZipArchive alloc] init];

            if([za UnzipOpenFile:zipPath]){
                BOOL ret = [za UnzipFileTo:path overWrite:YES];

                if(NO == ret){} [za UnzipCloseFile];



            }

        }else{
            NSLog(@"Error saving file %@", error);
        }
    }else{
        NSLog(@"Error downloading zip file: %@", error);
    }


});