我正在使用iPhone应用程序,该应用程序会在每个应用程序启动时下载焦点项目列表(带有图像的6个项目)。
我正在使用1个NSMutableURLRequest在循环中下载6个项目的文本信息,然后在同一个方法块中使用不同的for循环:
NSURL * imageURL = [NSURL URLWithString: strUrl];
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
获取所有6个项目的图像。代码工作正常,如果我等到这个过程完成并在主视图上更新我的列表。 如果我尝试导航,那么我的应用程序一直停留在下载过程中。我在后台线程上调用了完整方法,但仍然因为进程完成而被卡住了。
我如何为此编码,以便用户可以在不停留的情况下体验所有导航,当他回来时可以查看6个项目?
提前致谢。
答案 0 :(得分:0)
您可以使用NSURLConnections
asynchronous request在后台进行下载
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler`
这样下载就不会阻止你的代码。您还可以在后台线程上完成完成工作(只要它不能与UI一起使用,代码总是需要在主线程上)。