首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone故障安全多文件下载

iPhone故障安全多文件下载
EN

Stack Overflow用户
提问于 2011-04-26 09:11:48
回答 2查看 1.5K关注 0票数 3

我的应用程序正在从服务器下载图像包。它是来自XML的直接链接(20-50个文件)的数组。

  • 如何确保完整的图像被完全下载?
  • 如何添加一个条件,以取消整个下载(并删除所有已下载的文件),如果应用程序关闭与iPhone按钮?(这些方法都在AppDelegate中,而我的全部下载代码都在一些下载视图控制器中)
  • 在下载几个文件时,我还需要担心什么?(总共5-10 MB )

我目前使用的代码在下载中断或应用程序关闭时不太安全。在后台线程中,我为每个文件调用此方法:

代码语言:javascript
复制
    (BOOL) loadImageFromURL:(NSString *)url withName:(NSString *)filename toFolder:(NSString *)folder {

        NSURL *link = [NSURL URLWithString:url];
        NSFileManager *manager = [NSFileManager defaultManager];    
        NSString *filepath = [folder stringByAppendingPathComponent:filename];

        if ([manager fileExistsAtPath:filepath]) {
            return YES;
        }
        else
        { 
            UIImage *image = [[UIImage imageWithData:[NSData dataWithContentsOfURL:link]] retain];
            NSData *data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)];
            if ([data length] <= 0) 
                [image release];
                return NO; // no data
            else 
            {
                [data writeToFile:filepath atomically:YES];
                [image release];            
                return YES;
            }
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-26 09:17:48

使用so操作这样做。

看看blow 链接..。

http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/

现在,在2012年8月,尝试搜索wwdc 2012视频编号211来学习ns操作性。你可以用块来做。

代码语言:javascript
复制
[aNsque addExecutionBlock:^{ ...code... }];

其中aNsque是nsblockoperation操作。

票数 2
EN

Stack Overflow用户

发布于 2011-04-26 09:21:39

不要使用同步调用dataWithContentsOfURL。相反,看看如何使用NSURLConnection,-initWithRequest:代表:的异步方法

然后可以用[connection cancel];取消请求,也不必在另一个线程上运行它,因为它已经是异步的。

至于运行多个请求,您可能有几个选项。一个想法是创建一个启动NSURLConnection并解析响应的对象,然后创建一个这些对象的数组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5788253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档