Strong and Weak References

By default, a reference is a strong reference. All of the references you have seen so far have been strong references, and an object’s reference count is actually the count of strong references. As long as there is a strong reference to an object, that object will remain in memory.

There is another kind of reference: a weak reference. A weak reference allows you to access the object it references, but it is not included in the object’s reference count. Thus, a weak reference will not keep an object in memory.

In Swift, weak references are always optional types because they are auto-zeroing: when the referenced object is deallocated, the weak reference is set to nil. Auto-zeroing prevents references ...

Get Cocoa Programming for OS X: The Big Nerd Ranch Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.