objc_setAssociatedObject
adds a key value store to each Objective-C object. It lets you store additional state for the object, not reflected in its instance variables.
It’s really convenient when you want to store things belonging to an object outside of the main implementation. One of the main use cases is in categories where you cannot add instance variables. Here you use objc_setAssociatedObject
to attach your additional variables to the self
object.
When using the right association policy your objects will be released when the main object is deallocated.