我正在使用 POST 方法将视频上传到服务器。上传视频位于 NSOperation
的 main()
内部。之后,它被排队到 NSOperationQueue 中。
当网络在 Wi-Fi 和蜂窝数据之间切换时,当前操作失败。
如何处理网络切换NSOperation
失败问题。
正在使用sendSynchronousRequest:
进行视频上传
我尝试使用 AFNetworking
但结果保持不变
最佳答案
这里有一些建议。
首先,您需要设置一种机制来了解您何时从 WiFi 切换到蜂窝网络。如果是这样,您需要向操作发送 cancel
消息以取消它。
然后,您需要将您的操作转换为异步操作(覆盖 asynchronous
属性,旧的名为 concurrent
)。每次上传一大块数据时,您都需要验证操作是否已被取消,检查 isCancelled
属性,并在必要时回滚。
使用同步操作可防止您取消正在运行的任务。
NSUrlSession
可以使用类似的方法(参见invalidateAndCancel
方法)。在这种情况下,您可以避免使用操作将上传任务包装在其上。
如果您需要其他东西,请告诉我。
关于ios - NSOperationQueue在网络切换时取消当前的NSOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296021/