0

我采用了一堆代码,它使用 AFNetworking 进行 REST 调用。问题是所有这些调用都是以同步方式进行的。您最推荐哪种方式使 AFJSONOperation 从异步变为同步?

到目前为止,我已经看过基于 GCD 的示例,但我认为它并不简单,因为它不容易阅读。我会转而设置一些 NSOperation 对象来将它们纠缠在一起,直到响应被捕获。

我知道这个主题是有争议的,但我想探索这种思维方式。

4

1 回答 1

0

如果您要追求同步性,那么 NSOperations 与它的工具完全相反。NSOperationQueue 建立在 GCD 之上,只能以异步方式运行(事实上,这就是该类首先存在的原因)。您可以继承 NSOperationQueue 以提供某种程度的同步性,但它也必须通过 GCD。查看dispatch_sync()and dispatch_barrier_sync(),您可以使用它在 .-main返回的队列上调用给定操作的方法dispatch_get_current_queue()

但是所有这些对于解决竞争条件来说太过分了。相反,查看相关操作,甚至保持异步性,但使用串行队列来保持执行顺序。

于 2013-06-03T11:51:17.047 回答