There is an updated version of this course available, created for Swift 5.6, iOS 15, Xcode 13.4.1. View Latest Version

Networking With NSURLSession

May 16 2016 · Video Course (1 hr, 18 mins) · Intermediate

In today’s connected environment, networking is a foundational part of most apps. With the latest Apple frameworks, you can easily handle networking in your app without third party frameworks. But even if you use one of the popular frameworks for networking in your app, it’s important to know how the code works. In this video series, you’ll learn about NSURLSession, how to configure it, and how to create NSURLSessionTask objects to manage a network request. You’ll learn how to communicate with the NSURLSession system by passing closures to the tasks or by using delegate methods and the advantages and disadvantages of each. While not a strict prerequisite, it will be helpful to understand how concurrency works in iOS. If you’re not familiar with this topic, check out the Introducing Concurrency video series.


  • Swift 2, iOS 9, Xcode 7


2:58 Free

Find out what's covered in our Networking With NSURLSession video tutorial series.


Learn about NSURLSession and how to configure it.


Learn about NSURL, NSURLRequest, and NSURLResponse and how these classes are used in the process of a network request.


Learn how NSURLSessionTask has several subclasses that do the work of the network requests.


Learn how the NSURLSession system uses either delegate methods or closures to communicate progress and completion.


Learn how NSURLSession handles threading and how to control it if necessary.




Review what you learned in our Networking with NSURLSession video tutorial series and find out where to go from here.


Version history

iOS 15, Swift 5.6, Xcode 13.4.1

Sep 13 2022

iOS 13, Swift 5.2, Xcode 11

Jun 9 2020

iOS 12, Swift 4, Xcode 10

Oct 9 2018

iOS 11, Swift 4, Xcode 9

Nov 28 2017

iOS 10, Swift 3, Xcode 8

Mar 21 2017

iOS 9, Swift 2, Xcode 7 (Selected)

May 16 2016