• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

取消优异的异步呼叫?

IOS 来源:drew.. 20次浏览

这与解析相关,但可能与任何对基于云的数据的调用相关。通过一个回调块触发一个异步调用,并通过链路调节器进行100%数据包丢失测试会带来挑战。我有一个模板管理这一切,取消该进程,停止运行内部模块的代码应该以往任何时候都决定返回,取消优异的异步呼叫?

但..

的实际调用,保持滚动,在这种情况下,解析的(例如)SaveInBackgroundWithBlock …只是似乎不断尝试和尝试,即使应用程序正在滚动到其他东西。

我还没有找到任何能够联系并杀死这些电话的参考资料,并且想到如果可能的话在这里询问如何去做。

===========解决方案如下:

它通常是一个棘手的问题。

首先,没有办法停止任何后台任务(当然,没有,我会永远不敢在我的iOS代码中使用)。您只能礼貌地要求后台任务停止,例如通过调用“取消”方法。

因此,如果写一个任务在后台运行,应该可以取消,它需要一个“取消”方法,你的代码需要不时检查是否取消,在这种情况下,停止做工作并告诉其他人取消(NSOperationQueue对此有一些支持,这是IMO与GCD相比的唯一优势)。

如果您已经启动了一个无法取消的异步操作,那么您将被卡住。抱歉。异步操作需要检查自身,如果没有内置功能,则不能从外部停止。因此,如果取消是不可能的,则唯一可以做的事情是确保无论该操作如何,如果成功,结果不能再使用,并且如果失败,则不应向用户显示错误。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)