gpt4 book ai didi

ios - 异步环境中的同步调用

转载 作者:行者123 更新时间:2023-11-29 12:19:26 25 4
gpt4 key购买 nike

我正在使用 AFNetworking 2.0 和 Objective-C 创建一个类,用于将客户端数据库与服务器上的数据库同步。当然,当这种情况发生时,客户端不应该注意到,所以该类必须使调用异步。但是,此类中的某些调用依赖于其他调用的结果。

示例:

  • 对象:哺乳动物,id = 15,新 id = 26
  • 子对象:斑马,clade_id = 15

zebra 只能在哺乳动物完成后更新其属性,因为它使用了一些哺乳动物属性 (id),如果过早发送调用,则会导致数据损坏(id = 15 而不是正确的 26) .

我的问题是,如何使用 AFNetworking 以用户不会注意到(异步)的方式进行这些同步调用(哺乳动物完成后的斑马线)。

感谢您的回答。

最佳答案

您不需要使用同步调用。

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];

在成功 block 中,您安排了第二个操作。

2)第二种方式
一次创建这两个操作并设置第一个操作如何依赖于第二个操作(但需要额外的代码来管理共享数据)。

[operation2 addDependency:operation1]; 
[self.operationQueue addOperation:operation1];
[self.operationQueue addOperation:operation2];

关于ios - 异步环境中的同步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31051158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com