跟踪多个NSURLSessions何时完成

时间:2014-06-27 12:32:58

标签: ios objective-c nsurlsession

这让我困惑了一段时间,所以任何建议都会受到赞赏。

我有10个NSURLSessionUploadTasks同时启动,并且从viewDidLoad异步发生:

[self uploadMainInformation];
[self uploadSubInformation];
[self uploadLocation];
[self uploadMainPhoto];
[self uploadSubPhoto1];
[self uploadSubPhoto2];

等。我正在使用数组来说明使用完成处理程序完成任务的时间。但是,我很难过如何轮询数组以找出它是空的。在每个会话的开始和结束时添加和删除开始和结束都很容易。我只是不知道如何轮询一个空数组。

是否可以追踪NSMutableArray何时为空?或者有一个更好的解决方案,我不知道,似乎无法找到?我只希望开始10个同步上传,并知道他们何时完成(成功)。

提前感谢您的任何帮助。这让我疯了。

2 个答案:

答案 0 :(得分:1)

NSURLSession上设置委托,并添加方法:

- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session;

答案 1 :(得分:0)

为什么阵列如此复杂?只需添加一个计数器,一个简单的int,在发出请求时递增它,并在请求完成或发生错误时递减它。当计数器的值回到0时,它们都是完整的。

无论如何,当NSArray方法返回0时,count为空。