如何使用NSOperationQueue逐个从服务器下载音频文件

时间:2013-05-23 12:36:33

标签: iphone ios objective-c nsoperation nsoperationqueue

我有一个包含音频文件网址的数组。我想在后台模式下使用这些网址从服务器获取音频文件。我听说我可以通过NSOperationQueue实现这一目标。我的问题是

1)我怎样才能做到这一点。

2)如何在单次操作完成/失败时回调

3)如何在整个过程完成后回电。

我需要这些回调来跟踪下载过程,以便我可以更新我的数据库有关文件的下载状态。因此,如果任何互联网连接丢失,我可以再次下载重新发送文件。

任何想法都会有所帮助,因为我是NSOperationQueue的新手。

2 个答案:

答案 0 :(得分:2)

NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(download:) object:aAudio];
[queue addOperation:operation];//added code
[operation release];   

现在在方法download中做你想要的东西。按照doc设置[queue setMaxConcurrentOperationCount:1]逐一进行。

答案 1 :(得分:0)

似乎AFNetworking就像你需要的那样(成功/失败的回调块,在NSOperationQueue中发出请求)。在您的情况下,可能AFHttpClient及其enqueueHTTPRequestOperation方法将完成这项工作。