In this chapter, we saw how Swift manages memory using ARC. ARC works so well that we may think that we do not need to worry about memory management, which is exactly why we looked at how ARC can fail with strong reference cycles. We also saw how we can avoid strong reference cycles by using Weak or Unowned references.
In the next chapter, we will see how Swift can be used as an object-oriented programming language, before seeing how it can be used as a protocol-oriented programming language.