Memory management is the core concept in any programming language. Although there are plenty of tutorials that explain the basic principles of Swift automatic reference counting, I have found none that would explain it from the compiler perspective. In this article we’ll learn what’s beyond the basics of iOS memory management, reference counting and object life cycle. Let’s begin with the fundamen