在 swift 中创建 URLSession 冻结应用程序
Creation of URLSession freezing the app in swift
我正在为后台下载任务创建一个 URLSession
,如下所示,
class ViewController: UIViewController, URLSessionDelegate {
var session: URLSession!
lazy var downloadsSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier:
"bgDownloader")
// configuration.sessionSendsLaunchEvents = true
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
} ()
override func viewDidLoad() {
super.viewDidLoad()
print("started")
session = downloadsSession
print("done")
// Do any additional setup after loading the view.
}
}
每当控件点击 viewdidload() 中的 let session = URLSession(...)
行时,应用程序就会冻结。有帮助吗?
发生了一些事情,因为仅此代码不足以显示问题。例如。我 运行 你的项目并看到两个 print
语句:
这是在 Xcode 11.4.1 (11E503a) 和 iPhone 11 Pro Max 模拟器 运行 on macOS Catalina 10.15.4 (19E287) 中,虽然我用过这个许多不同 Xcode 版本的模式,没有发生意外。
如果您有奇怪的行为,您可以:
重置模拟器:选择“设备”»“清除所有内容和设置...”»“清除”。
清空派生数据:当出现莫名其妙的行为时,清空派生数据文件夹是明智的做法(“Xcode”»“首选项...”»“位置”,点击派生数据路径旁边的箭头;退出 Xcode;删除派生数据文件夹中的所有内容;然后重新启动 Xcode)。我无法想象这会有所帮助,但是当您获得 incorrect/inexplicable 行为时,这是一个很好的第一步。
重启 and/or 试试其他电脑:如果你真的仍然看到这个行为,重启你的机器,在其他人的电脑上试试,等等。但是实例化没有任何问题后台会话。
(不用说,从长远来看,这个下载会话不应该是视图控制器的 属性,但这是一个更大的问题,一旦你解决了眼前的问题,你就可以解决.)
我正在为后台下载任务创建一个 URLSession
,如下所示,
class ViewController: UIViewController, URLSessionDelegate {
var session: URLSession!
lazy var downloadsSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier:
"bgDownloader")
// configuration.sessionSendsLaunchEvents = true
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
} ()
override func viewDidLoad() {
super.viewDidLoad()
print("started")
session = downloadsSession
print("done")
// Do any additional setup after loading the view.
}
}
每当控件点击 viewdidload() 中的 let session = URLSession(...)
行时,应用程序就会冻结。有帮助吗?
发生了一些事情,因为仅此代码不足以显示问题。例如。我 运行 你的项目并看到两个 print
语句:
这是在 Xcode 11.4.1 (11E503a) 和 iPhone 11 Pro Max 模拟器 运行 on macOS Catalina 10.15.4 (19E287) 中,虽然我用过这个许多不同 Xcode 版本的模式,没有发生意外。
如果您有奇怪的行为,您可以:
重置模拟器:选择“设备”»“清除所有内容和设置...”»“清除”。
清空派生数据:当出现莫名其妙的行为时,清空派生数据文件夹是明智的做法(“Xcode”»“首选项...”»“位置”,点击派生数据路径旁边的箭头;退出 Xcode;删除派生数据文件夹中的所有内容;然后重新启动 Xcode)。我无法想象这会有所帮助,但是当您获得 incorrect/inexplicable 行为时,这是一个很好的第一步。
重启 and/or 试试其他电脑:如果你真的仍然看到这个行为,重启你的机器,在其他人的电脑上试试,等等。但是实例化没有任何问题后台会话。
(不用说,从长远来看,这个下载会话不应该是视图控制器的 属性,但这是一个更大的问题,一旦你解决了眼前的问题,你就可以解决.)