如何将下载过程作为后台进程发送

时间:2011-08-06 13:24:14

标签: iphone xcode ipad

我从我的服务器下载数据,下载需要5到6分钟。下载时我无法在我的应用程序中进行任何工作。如何在后台发送下载过程,以便用户可以在应用程序内和下载后导航。我们将通知用户下载完成..

谢谢。

2 个答案:

答案 0 :(得分:1)

您需要做的是将您的下载代码放在单独的线程上(iOS上的NSThread)。 Here's帮助您入门的教程。

答案 1 :(得分:1)

  1. 创建新主题:
  2. [NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];

    1. 创建新线程调用的方法:
    2. - (void)myMethod {

             NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
      
             /*** code that should be run in the new thread goes here ***/
      
            [pool release];
      

      }

      如果您需要从新线程内部对主线程执行某些操作(例如,显示加载符号),该怎么办?使用performSelectorOnMainThread。

      [self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:false];