Posts

Showing posts from October 21, 2018

Weak vs Strong Unowned in Swift

Image
I often find myself worrying about retain cycles in my code. I feel like this is a common concern amongst others as well. I don't know about you, but it seems like I am constantly hearing "When am I supposed to use weak? And what the hell is this 'unowned' crap?!" The issue we find is that we know to use strong, weak, and unowned specifiers in our swift code to avoid retain cycles, but we don't quite know which specifier to use. Fortunately, I happen to know what they are AND when to use them! I hope this guide helps you to learn when and where to use them on your own. LET'S GET STARTED ARC ARC is a compile time feature that is Apple's version of automated memory management. It stands for  Automatic Reference Counting.  This means that it  only  frees up memory for objects when there are  zero strong  references to them. STRONG Let's start off with what a strong reference is. It's essentially a normal reference (pointer and all), but