We have covered a lot of ground in the previous chapters, and we have a lot of Swift tools in our tool belt. Now it's time to delve into more advanced topics, looking at how certain Swift types are implemented, how they can be used, and what their performance characteristics are. We will also look at how we can perform asynchronous tasks using Grand Central Dispatch (GCD) through the Dispatch framework and the higher-level operations in the Foundation framework that are also built on GCD.
Understanding the multithreaded environment available on all Apple platforms, as well as the performance profile of the Swift constructs you use, is vital to building a fast and responsive app.
In this chapter, we will cover the following recipes:
- Value and reference semantics
- Using Dispatch queues for concurrency
- Concurrent queues and dispatch groups...