对于所有iOS版本<12,它都可以正常工作。 我正在使用基本的URLSession在我的应用中测试(iOS〜> 12.x),并尝试使用Alamofire。
测试步骤:
1。。点击任何HTTP / API调用。
2。。立即点击主页按钮。
一段时间后会来
2018-12-14 13:43:46.968901+0530 NewReader[15364:4847228] Task <519A3F27-90DA-439F-8711-B07EFA62E823>.<1> load failed with error Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <519A3F27-90DA-439F-8711-B07EFA62E823>.<1>, _kCFStreamErrorDomainKey=1, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <519A3F27-90DA-439F-8711-B07EFA62E823>.<1>"
), _kCFStreamErrorCodeKey=53} [53]
我不知道其他应用程序如何解决此问题。 还提出了问题here
让我知道修复程序或解决方法。
PS::我已经尝试过 Dispatch 或 Delay 无效。
答案 0 :(得分:1)
您需要使用后台功能配置URLSession。情况一直如此,但是在进入后台之前,它可以继续工作很短的时间(通常长达3分钟)。在最新的更新中它可能变得更加严格,或者您的请求花费的时间超过了可用时间。
首先,您需要在功能标签中启用背景模式。
下面是一些示例代码,以展示如何设置URLSession准备用于背景
private lazy var bgSession: URLSession = {
let config = URLSessionConfiguration.background(withIdentifier: Constant.sessionID.rawValue)
//config.isDiscretionary = true
config.sessionSendsLaunchEvents = true
return URLSession(configuration: config, delegate: self, delegateQueue: nil)
}()
代码示例和更多信息,请参见以下article