我正在使用RxAlamofire在后台模式下下载文件。在iOS <12中可以正常工作。但在iOS 12中则不是。在下载过程中,我取消了所有操作,因此RxAlamofire触发了OnError方法,在这里我可以通过request.resumeData键获取下载的内容。因此,当我通过properlistserialization转换为字典时,iOS 12中的结构有所不同。如何解决此问题。我需要使用“ NSURLSessionResumeInfoFileName”的值。
onError: {[weak self] error -> Void in
if let resumeData = self?.request?.resumeData {
self?.saveResumeDataInDocumentDirectory(resumeData: resumeData)
}
self?.handleError(error)
}
func saveResumeDataInDocumentDirectory(resumeData: Foundation.Data) -> String? {
var plist: [String: Any]?
if let resumeDictionary = try? PropertyListSerialization.propertyList(from: resumeData, options: PropertyListSerialization.MutabilityOptions.mutableContainersAndLeaves, format: nil) {
plist = resumeDictionary as? [String: Any]
return plist?[kNSURLSessionResumeInfoTempFileName] as? String ?? ""
}
return nil
}