Understanding Automatic Reference Counting (ARC) in iOS Development

Pierluigi De Stasio
2 min readJan 17, 2023

Automatic Reference Counting (ARC) is a memory management system used in iOS development to automatically manage the lifecycle of objects in an application’s memory. It is designed to help prevent common memory management errors, such as memory leaks and over-releases, by automatically tracking the number of references to an object and releasing it from memory when it is no longer needed.

ARC works by keeping track of the number of references to each object in an application’s memory. When an object is created, its reference count is set to 1. Every time another object holds a reference to that object, its reference count is incremented. When an object’s reference count drops to 0, it is automatically deallocated from memory.

To implement ARC in an iOS application, developers simply need to use the keywords “strong” and “weak” (there is also “unowned”, but we are going to talk about it in another post) when declaring properties and variables that hold references to objects. A “strong” reference means that the object will continue to exist as long as at least one “strong” reference to it exists, whereas a “weak” reference does not keep the object alive.

For example, in the following code snippet, “self.myObject” holds a strong reference to the object, and the object’s reference count is incremented by 1:

class MyClass {
var myObject: MyObject? // Strong reference
weak var myWeakObject: MyObject? // Weak reference…

--

--

Pierluigi De Stasio

Mobile app developer for Android and iOS. Sharing my knowledge on Medium.com and always learning about the latest tech trends.