我一直在使用AFNetworking
获取同步信息,并发现当我应用multithreading
时它会向服务器发送多个请求,但我只执行一个请求语句。
可以使用嗅探器应用程序跟踪此问题,因为Xcode debugger
无法跟踪请求。
此外,我注意到当互联网连接速度变慢时会发生这种情况。
以下是我执行的一些代码
开始同步
- (void)SyncFull { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(FinishSyncFull:) name:@"FinishSyncFull" object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(RemoveNotificacions:) name:@"RemoveNotificacions" object:nil]; [[PivotService getInstance] sync]; }
继续同步的通知
-(void)FinishSyncFull:(NSNotification*) Notification { [[NSNotificationCenter defaultCenter] removeObserver:self name:@"FinishSyncFull" object:nil]; if ([SyncManager getInstance] mustSync]) { [[FMDBHelper getInstance] RemoveDataFromTable:@"SyncInfo"]; [[FMDBHelper getInstance] RemoveDataFromTable:@"SyncDetails"]; [self startSyncFull]; } }
startSyncFull
功能说明:
- (void)startSyncFull
{
[[ServiceEntity1 getInstance] sync];
[[ServiceEntity2 getInstance] sync];
[[ServiceEntity3 getInstance] sync];
(...)
}
答案 0 :(得分:-2)
您只能在主线程中发出http请求,因此您必须使用以下命令执行该威胁中的每个请求:
dispatch_sync(dispatch_get_main_queue(), ^{
//Your request
});
祝你好运!