Today, most major programming languages have functionalities similar to those of closures in Swift. Some of these implementations are really hard to use (objective-C blocks), while others are easy (Java lambdas and C# delegates). I have found that the functionality that closures provide is especially useful when developing frameworks. I have also used them extensively when communicating with remote services over a network connection. While blocks in Objective-C are incredibly useful, the syntax used to declare a block was absolutely horrible. Luckily, when Apple was developing the Swift language, they made the syntax of closures much easier to use and understand.
In this chapter, we will cover the following topics:
- What are closures?
- How to create a closure?
- How to use a closure?
- What are examples of useful closures?
- How to avoid strong reference cycles...