【问题标题】:Application got stuck on downloading应用程序在下载时卡住了
【发布时间】:2012-04-02 14:43:38
【问题描述】:

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

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

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

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

我如何为此编写代码,以便用户可以体验所有导航而不会卡住,并且当他回来时可以看到 6 个项目?

提前致谢。

【问题讨论】:

    标签: objective-c blocking


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-26
      • 2019-02-26
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多