I had some work with NSURLConnection to download files/ multiple files etc I wanted to try the same with NSURLSession and using Swift. Found one wonderful tutorial Appcoda, which explained the concepts in Objective C. I took learning from that and implemented the filedownloader in Swift 3, with my way of approach, here is what I achieved FileDownloader