iOS 12:RXAlamofire OnError Resumedata格式无效

时间:2019-03-13 12:16:01

标签: alamofire nsurlsession nsurlsessiondownloadtask rxalamofire

我正在使用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
}

enter image description here enter image description here

0 个答案:

没有答案