当您在我的应用程序中创建/更新/删除记录时,它会OutgoingRequest
在 Core Data 中创建一个记录。应用程序会定期将这些请求放入队列中,并将它们全部推送到服务器。我使用 AFHTTPClient 帖子(见下文)来做到这一点。我遇到的问题是它一次将所有这些请求向上推送,然后响应以没有真正的顺序返回。
我需要做的是使这些请求“同步”工作,因为在请求 A 完成(成功或失败响应)之前不应发布请求B。这也是在后台完成的,不应挂起 UI。
for(OutgoingRequest *req in queue)
{
NSURL *reqUrl = [NSURL URLWithString: globals.baseURL];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:reqUrl];
[httpClient setParameterEncoding:AFJSONParameterEncoding];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
req.url, @"viewName",
req.json, @"JSON",
req.dateAdded.description, @"dateTime",
nil];
NSString *path = [NSString stringWithFormat:@"cache/update/?deviceUID=%@&token=%@", [MySingleton getMacAddress], globals.token];
[httpClient postPath:path parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//handle the repsonse
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
}
有没有办法用我目前的设置来实现这一点?或者我应该使用其他方式发布到我的服务器?
谢谢