如何在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中它就是这样的.
原文链接:https://www.f2er.com/swift/319948.htmllet 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
.