应用程序卡在下载上

时间:2012-04-02 06:30:39

标签: objective-c blocking

我正在使用iPhone应用程序,该应用程序会在每个应用程序启动时下载焦点项目列表(带有图像的6个项目)。

我正在使用1个NSMutableURLRequest在循环中下载6个项目的文本信息,然后在同一个方法块中使用不同的for循环:

NSURL * imageURL = [NSURL URLWithString: strUrl];
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];

获取所有6个项目的图像。代码工作正常,如果我等到这个过程完成并在主视图上更新我的列表。 如果我尝试导航,那么我的应用程序一直停留在下载过程中。我在后台线程上调用了完整方法,但仍然因为进程完成而被卡住了。

我如何为此编码,以便用户可以在不停留的情况下体验所有导航,当他回来时可以查看6个项目?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用NSURLConnections asynchronous request在后台进行下载

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler`

这样下载就不会阻止你的代码。您还可以在后台线程上完成完成工作(只要它不能与UI一起使用,代码总是需要在主线程上)。