gpt4 book ai didi

ios - 如果用户在 swift iOS 中点击两次,则取消 NSURLSession

转载 作者:搜寻专家 更新时间:2023-11-01 07:34:22 25 4
gpt4 key购买 nike

我正在使用 NSURLSession,根据该线程,这是首选。 How to make an HTTP request in Swift?

let url = NSURL(string: "http://www.stackoverflow.com")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()

我唯一的问题是当用户点击两次并且我想取消第一个请求时。我试过 task.cancel() 但打印语句仍然执行(即在 .cancel() 之后与 NSDomainError)。我如何安全地取消此请求 (NSURLSessionDataTask),而不触发 print 语句,或者甚至可能?

编辑:只是为了清楚。 URL 可能相同,我想取消第一个请求。

最佳答案

这就是我解决问题的方法。当执行 task.cancel() 时,打印语句不会被执行。检查字符串似乎有点老套,所以如果有人有更好的解决方案,我会接受那个。

let url = NSURL(string: "http://www.stackoverflow.com")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
if (error?.userInfo?["NSLocalizedDescription"] as? String) == "cancelled"
{
return
}
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()

关于ios - 如果用户在 swift iOS 中点击两次,则取消 NSURLSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com