Ios6 iOS:创建用于上载的后台队列?

Ios6 iOS:创建用于上载的后台队列?,ios6,grand-central-dispatch,nsoperationqueue,block,Ios6,Grand Central Dispatch,Nsoperationqueue,Block,我有一个应用程序,有五个独立的控制器。每个TabController执行一些工作,并将结果提交给服务器。 您能告诉我如何使用串行队列异步提交数据吗 我应该有一个singleton UploadsService,它有一个dispatch\u queue\t uploadsQueue引用,五个TabController中的每一个都可以访问并向其提交工作块 或者我应该为每个TabBarController中的每个TabController设置五个串行队列,并让每个TabController使用自己的串

我有一个应用程序,有五个独立的控制器。每个TabController执行一些工作,并将结果提交给服务器。 您能告诉我如何使用串行队列异步提交数据吗

我应该有一个singleton UploadsService,它有一个dispatch\u queue\t uploadsQueue引用,五个TabController中的每一个都可以访问并向其提交工作块

或者我应该为每个TabBarController中的每个TabController设置五个串行队列,并让每个TabController使用自己的串行队列分别提交给服务器

我试图模拟的是一种提交即忘的方法。用户只需在五个选项卡控制器之间轻松移动,就可以频繁地向服务器提交结果。提交每个任务可能需要20秒左右的时间。我设想使用一个集中式串行队列来防止并发问题,但我想知道是否需要创建一个singleton类,它的唯一目的只是容纳一个集中式串行队列


谢谢

我个人会利用其他人的辛勤工作来处理所有网络中断、应用程序后台处理等边缘情况。MKNetworkKit为我解决了上述所有排队等问题:

在应用程序代理中创建共享的API引擎:

_apiEngine = [[MKNetworkEngine alloc] initWithHostName:@"example.org" apiPath:@"/upload/textdetective/" customHeaderFields:nil];
[_apiEngine useCache];
然后在需要时:

MKNetworkEngine *engine = [delegate apiEngine];
NSString* bundle = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setValue:bundle forKey:@"bundle"];
[params setValue:version forKey:@"version"];
MKNetworkOperation *op = [engine operationWithPath:@"" params:params httpMethod:@"POST" ssl:YES];
[op setFreezable:YES];
[engine enqueueOperation:op];