【发布时间】:2019-04-15 05:59:40
【问题描述】:
我有一个带有搜索栏的屏幕,当我离开这个屏幕时,我只是取消了正在运行的 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]: unrecognised selector sent to instance。
还要注意:它不是每次都崩溃,这会在任何时候随机出现。我不确定,我做错了什么。任何人都可以有任何想法吗?之前有人遇到过这种情况吗?
【问题讨论】:
-
为什么要使用强制转换 lastURLSessionDataTask?使用保护语句而不是 if let lastSession = self.lastURLSessionDataTask, lastSession.state == running{}
标签: ios swift nsurlsession nsurlsessiondatatask