0

我正在使用一个异步下载文件的类..有点像这样

// in AViewController.m
DataGetter *blueFile = [[DataGetter alloc] init];
blueFile.delegate = self;
[blueFile getData:@"http://example.com/blue-file"];

它有一个委托方法,一旦下载,它就会对文件进行处理

- (void) dataGetterFinished:(DataGetter *)dataGetter
{
// code
}

这在理想条件下可以正常工作,但是当我们使用移动设备时,连接并不总是可靠的。连接可能会在中途中断,或者速度可能非常慢。

所以我想知道如何设置一个委托方法,该方法在 10 秒后触发,然后显示错误并停止操作。我是否必须使用 NSTimer 或 NSNotification 或某种组合?

4

1 回答 1

1

奎因“爱斯基摩人!” Apple 在 WWDC 2010 上就 iPhone 网络编程进行了两次会谈。这是第 207 和 208 场会议,您可以在此处下载:http: //developer.apple.com/videos/wwdc/2010/

网络成功的简单方法是:

  1. NSURLConnection异步使用。
  2. 不要使用计时器或任何其他方式设置手动超时,默认设置是合理的。
  3. 而是准备处理一个connection:didFailWithError:, 将被发送超时。
  4. 如果需要,您可以使用 手动取消连接-[NSURLConnection cancel],例如响应用户操作。
于 2010-12-15T16:30:02.490 回答