如何在swift 3.0中编写以下代码段?以下语法在swift 2中
Alamofire.download(.POST,invoice.url,parameters:params,destination: { (url,response) -> NSURL in let pathComponent = response.suggestedFilename let fileManager = NSFileManager.defaultManager() let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory,inDomains: .UserDomainMask)[0] let fileUrl = directoryURL.URLByAppendingPathComponent(pathComponent) return fileUrl }) .progress { bytesRead,totalBytesRead,totalBytesExpectedToRead in print(totalBytesRead) dispatch_async(dispatch_get_main_queue()) { let progress = Double(totalBytesRead) / Double(totalBytesExpectedToRead) completionHandler(progress,nil) } } .responseString { response in print(response.result.error) completionHandler(nil,response.result.error) }
在Swift 3中它就是这样的.
let parameters: Parameters = ["foo": "bar"] let destination: DownloadRequest.DownloadFileDestination = { _,_ in let pathComponent = "yourfileName" let documentsURL = FileManager.default.urls(for: .documentDirectory,in: .userDomainMask)[0] let fileURL = documentsURL.appendPathComponent(pathComponent) return (fileURL,[.removePreviousFile,.createIntermediateDirectories]) } Alamofire.download(urlString,method: .get,parameters: parameters,encoding: JSONEncoding.default,to: destination) .downloadProgress(queue: DispatchQueue.global(qos: .utility)) { progress in print("Progress: \(progress.fractionCompleted)") } .validate { request,response,temporaryURL,destinationURL in // Custom evaluation closure now includes file URLs (allows you to parse out error messages if necessary) return .success } .responseJSON { response in debugPrint(response) print(response.temporaryURL) print(response.destinationURL) }
有关详细信息,请查看Alamofire Documentation
或Alamofire 4.0 Migration Guide
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。