【发布时间】:2017-08-23 09:10:36
【问题描述】:
我需要立即取消 NSOperationQueue 中的所有操作。
考虑一下我的情况,
我必须不断地访问我的服务器,即只要用户在文本框中输入,我就会调用我的服务器。用户完成输入后,我必须进行最终的 api 调用。所以我为单个 API 命中创建了一个 NSOperation。当用户在文本框中输入时。我创建 NSOperation 对象并将其添加到 NSOperationQueue 中。在检测到该用户完全输入后,我取消了队列中的所有操作并点击了我的最终 api。问题是某些操作没有立即取消。所以我最后的 api 命中不会立即被调用。它正在等待一段时间(所有操作都必须完成)然后调用。
仅供参考,
myOperationQueue.cancelAllOperations()
在操作启动方法中我有这个代码
let session = URLSession.shared
let task = session.dataTask(with: urlRequest, completionHandler: { (data, urlResponse, error) -> Void in
})
task.resume()
请为我提供立即调用最终 API 的最佳方式。
【问题讨论】:
标签: ios swift nsoperation nsoperationqueue