gpt4 book ai didi

iOS 崩溃说 : [NSURLSessionDataTask state]: unrecognised selector sent to instance

转载 作者:行者123 更新时间:2023-11-29 05:50:50 26 4
gpt4 key购买 nike

我有带有搜索栏的屏幕,当我离开此屏幕时,我只是取消正在进行的 urlSessionDataTask。这是我正在使用的代码:

override func viewWillDisappear(_ animated: Bool) {

if self.lastURLSessionDataTask != nil, self.lastURLSessionDataTask!.state == .running{
self.lastURLSessionDataTask!.cancel();
self.lastURLSessionDataTask = nil;
}

super.viewWillDisappear(animated);
}

正如您在代码中看到的,我首先检查我的 lastURLSessionDataTask 变量是否不为零,然后检查其状态,如果正在运行,则取消该任务。

现在的问题是,它会导致崩溃,详细信息如下:[NSURLSessionDataTask state]: 无法识别的选择器发送到实例

还要注意:它并不是每次都会崩溃,这种情况随时都会随机出现。我不确定我做错了什么。任何人都可以有任何想法吗?有人之前遇到过这个问题吗?

最佳答案

因为lastURLSessionDataTask是URLSessionTask的可选类型,所以您应该使用guard语句而不是强制转换

override func viewWillDisappear(_ animated: Bool) {
guard let task = lastURLSessionDataTask, task.state == .running else { super.viewWillDisappear(animated); return }
task.cancel()
task = nil
}

或者通过

检查值
override func viewWillDisappear(_ animated: Bool) {
if let task = lastURLSessionDataTask, task.state == .running {
task.cancel()
task = nil
}
super.viewWillDisappear(animated)
}

关于iOS 崩溃说 : [NSURLSessionDataTask state]: unrecognised selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683285/

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