我使用AFNetworking 2.0和Objective-C创建一个类,它将客户端数据库与服务器上的数据库同步。 当然,客户端在发生这种情况时不应该注意到,因此类必须使调用异步。 但是,此类中的某些调用取决于其他调用的结果。
示例:
一旦哺乳动物完成,斑马只能更新其属性,因为它使用了一些哺乳动物属性(id),如果它过早发送呼叫,则会导致数据损坏(id = 15而不是正确的26)
我的问题是,如何使用AFNetworking以用户不注意(异步)的方式进行这些同步调用(哺乳动物完成后的斑马)。
感谢您的回答。
答案 0 :(得分:1)
您无需使用同步通话。
1)第一种方式
// create request with URL
NSMutableURLRequest *request = ....;
// create AFHTTPRequestOperation
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperationManager manager] HTTPRequestOperationWithRequest:request success:^{success block} failure:^{failure block}];
// Call operation
[self.operationQueue addOperation:operation];
在成功阻止中安排第二次操作。
2)第二种方式
立即创建两个操作,并将第一个操作设置为第二个操作的依赖关系(但需要额外的代码来管理共享数据)。
[operation2 addDependency:operation1];
[self.operationQueue addOperation:operation1];
[self.operationQueue addOperation:operation2];