Grand Central Dispatch (GCD)

Perform Asynchronous Operations in iOS


大约 2 个星期

6小时每周 (自主学习)




大约 2 个星期

6小时每周 (自主学习)



Many times your apps need to run lengthy operations in the background, like downloading data, but you don't want these operations to interfere with your UI.

Apple's GCD (long form: Grand Central Dispatch) framework allows you to create asynchronous apps for iOS, ensuring smooth a smooth user experience in situations like the one mentioned above.

喜欢这门课程?加入“iOS 开发者”纳米学位,点此免费体验


Almsot all Apps consume data from web services, and therefore must use background threads for these lengthy operations.

Even though we provide a black box solution for concurrency in the iOS Networking with Swift course, it is important that you understand how concurrency works in iOS.

This knowledge is vital to deliver Apps that won't be rejected from the App Store and also provide a great user experience.

On top of that, GCD is a frequent topic in iOS job interviews.


To be successful in this course, you should be comfortable programming in Swift, and understand closures. You can learn these skills in our Swift Syntax course.

Familiarity with The Hitchhiker's Guide to the Galaxy and The Matrix are also recommended in order to understand the jokes in this course.



Lesson 1: Closures Reloaded

In this chapter we will revisit the concept of closures in Swift. We need to learn a few properties of closures that we bypassed in Swift Syntax. These are vital when dealing with GCD.

You will put you new knowledge of closures to test in several playgrounds. By the end of this lesson you will be able to drop things like, "Closures are first class types that capture their lexical environment" in casual conversations and impress fellow nerds. Even better: you will actually know what the heck you're talking about!

Lesson 2: Grand Central Dispatch

Here you meet our main antagonist: Apple's open source library Grand Central Dispatch.

GCD is an enormous library, so we will concentrate on its core features: how it allows you to send tasks to the background and (equally important) to the foreground.

When you finish this lesson you will have a sound knowledge of how and what you can send to the background and what must always run in the foreground.

Lesson 3: Sample App

Talk is cheap. Show me the code! -- Linus Torvalds.

In this chapter you will create a simple App that downloads huge images (the easiest way to block the UI). You will apply your newly acquired knowledge to send this network lengthy task to the background in 2 different ways.

By the end of this lesson you will know how to run closures in the background, design methods that take a completion closure and understand the code in the black box in the Networking course.