我正在实施一个使用REST服务发出请求的iOS应用。我想在新的呼叫时取消之前的所有REST呼叫。我可以在没有操作队列的GCD中的全局队列中执行此操作吗?感谢
答案 0 :(得分:1)
GCD不提供取消阻止的API。因此,您必须自己实施此取消。
最简单的方法可能是设置一个全局标记'cancelled'并检查你的块内部。如果设置了标志,则立即从您的块返回。然后在所有块完成后,您可以重置标志并将新块排入队列。
尽管听起来很简单,但这需要一些非常重要的代码。使用NSOperationQueue会更容易,而不是在普通GCD上重新实现其功能。