NSURLConnection线程问题

时间:2011-04-12 12:09:00

标签: iphone nsurlconnection nsthread

我有一个大问题,我需要你的帮助。这就是我需要完成的事情:

  1. 用户从a中选择一行 的TableView
  2. 推入新的视图控制器 NavigationController,和 仅显示“正在加载”消息
  3. 同时从一个数据中读取一些数据 XML文件(通过http)
  4. 读取数据后,a NSUConnection用于加载 来自URL的图像(此URL是部分 的数据)
  5. 图片仍在加载时 其他数据显示在 屏
  6. 图片已下载,是 显示,完成外观 视图
  7. 最大的问题是我无法一起使用detachNewThreadSelectorNSURLConnection

    那么我该如何解决这个问题呢?你会怎么做?

    非常感谢!

2 个答案:

答案 0 :(得分:0)

我会使用 NSTimer 来使用detachNewThreadSelector和NSURLConnection来解决问题。


我有类似的情况,有一个下载Progress UIViewController显示,直到文件完成,这是我做的:

  • 我绘制了一个加载视图,其中包含一个活动指示器。
  • 我初始化NSTimer以继续检查文件是否完整。
  • 我调用包含下载逻辑的方法。

<强> [1]

 -(void) vManageFileRequest
{       
  [self.oFilesManager vGetSingleFileRequest];

   NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self   selector:@selector(vValidateFileRequest) userInfo:nil repeats:NO]];
}

<强> [2]

   [self performSelectorOnMainThread:@selector(vManageFileRequest) withObject:nil waitUntilDone:NO];

答案 1 :(得分:0)

您可以使用以下方法...(如果您使用的是异步请求)

当您的应用程序进入- (void)connectionDidFinishLoading:(NSURLConnection *)connection时...在NSOperationQueue中添加一个NSInvocationOperation对象(您可以在应用程序级别处理,通过在appDelegate中合成它)..

按以下方式创建NSInvocationOperation ..(在connectionDidFinishLoading

NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(parseIt) object:nil];

[appDelegate.operationQueue addOperation:operation];
[operation release];




-(void) parseIt
{
   //ask for parsing stuff....what you have earlier wrote directly in connectionDidFinishLoading
}

谢谢,