我采用了一堆使用AFNetworking进行REST调用的代码。问题是所有这些调用都是以同步的方式进行的。你推荐哪种方法使AFJSONOperation从异步到同步是最好的?
到目前为止,我已经看到了基于GCD的示例,但我并不认为它很简单,因为它不容易阅读。我会设置几个NSOperation对象,将它们纠缠在一起,直到捕捉到响应。
我知道这个话题是有争议的,但我想探索一下这种思维方式。
发布于 2013-06-03 19:51:17
如果你追求的是同步性,那么NSOperations是与之完全相反的工具。NSOperationQueue构建在GCD之上,并且只能以异步方式运行(实际上,这就是该类存在的首要原因)。您可以通过子类化NSOperationQueue来提供一定程度的同步,但也必须通过GCD实现。查看dispatch_sync()和dispatch_barrier_sync(),您可以使用它们在dispatch_get_current_queue()返回的队列上调用给定操作的-main方法。
但是,所有这些对于解决竞争条件来说都太多了。取而代之的是,查看相关的操作,甚至保持异步,但使用串行队列,以便保持执行顺序。
https://stackoverflow.com/questions/16895374
复制相似问题