我的应用程序允许用户搜索特定的内容,然后我从不同的来源进行多个API调用,以获取有关他们搜索内容的信息。
我想添加一个“停止”按钮,以便用户可以停止搜索,例如,如果他们的wifi连接错误并且搜索时间过长。我有不同方法的API调用,因此当用户单击“停止”按钮时,我不知道哪个正在运行。
当用户点击停止时,是否有人熟悉停止所有功能甚至只是在应用中运行的API调用的方法?
答案 0 :(得分:2)
你可以试试这个:
Operation
Operation
添加到OperationQueue
以启动API调用operationQueue.cancelAllOperations()
取消所有API通话。答案 1 :(得分:0)
使用OperationQueue
可以说是一个更好的解决方案,但您也可以将多个URLSessionDataTask
存储在一个数组中,并使用.cancel()
使其全部停止循环。
例如:
let task1 = URLSession.shared.dataTask(...
let task2 = URLSession.shared.dataTask(...
let taskArr = [task1, task2]
for task in taskArr {
task.cancel()
}