First introduced in iOS 3.1 as part of the Objective-C runtime, associated objects provide a way to add instance variables to an existing class object (w\o subclassing.
This means you'll be able to attach any object to any other object without subclassing.
void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicy policy)
id objc_getAssociatedObject(id object, void *key)
void objc_removeAssociatedObjects(id object)
| Param | Details |
|---|---|
| object | The existing object you want to modify |
| key | This can basically be any pointer that has a constant memory address, but a nice practice is to use here a computed property (getter) |
| value | The object you want to add |
| policy | The memory policy for this new value i.e. should it be retained / assigned, copied etc.. just like any other property you'd declare |