我正在使用一个异步下载文件的类..有点像这样
// 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或某种组合?
答案 0 :(得分:1)
奎因“爱斯基摩人!”来自Apple在WWDC 2010上为iPhone进行了两次关于iPhone网络编程的会谈。会议207和208,你可以在这里下载:http://developer.apple.com/videos/wwdc/2010/
网络成功的简单接收是:
NSURLConnection
。connection:didFailWithError:
,这将被发送超时。-[NSURLConnection cancel]
手动取消连接,以响应用户操作。