Understanding automatic reference counting

Automatic reference counting is very easy to understand. Imagine that we have to distribute the items that we store in a box. After we distribute all the items, we must throw the box in a recycle bin. We cannot throw the box in the recycle bin when we still have one or more items in it. Seriously, we don't want to lose the items we have to distribute because they are very expensive.

The problem has a very easy solution; we just need to count the number of items that remain in the box. When the number of items in the box reaches zero, we can get rid of the box.

Tip

One or more variables can hold a reference to a single instance of a class. Thus, it is necessary to count the number of references to an instance before Swift can get rid of an instance. When the number of references to a specific instance reaches zero, Swift can automatically and safely remove the instance from memory because nobody needs this specific instance anymore.

For example, you can create an instance of a class and assign it to a variable. The automatic reference counting mechanism registers the reference and knows that the there is one reference to this instance. Then, you can assign the same instance to another variable, and therefore, the automatic reference counting mechanism will increase the reference count for the single instance to two.

After the first variable runs out of scope, the second variable that holds a reference to the instance will still be accessible. The automatic reference counting mechanism will decrease the reference count for the single instance to one as a result of the first variable running out of scope. At this point, the reference count for the single instance is equal to one and, therefore, the instance must still be available, that is, we need it alive.

After the second variable runs out of scope, there are no more variables that hold a reference to the instance; therefore, the automatic reference counting mechanism will decrease the reference count for the single instance to zero and mark it as disposable. At this point, the instance can be safely removed from memory.

Tip

The automatic reference counting mechanism can remove the instance from memory at any time after the reference count for the instance reaches zero.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.135.186.12