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 |