Objective-C Associated Objects
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)
|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 |
More details here:
Basic Associated Object Example
Assume we need to add an NSString object to
SomeClass (we cant subclass).
In this example we not only create an associated object but also wrap it in a computed property in a category for extra neatness
Now it would be as easy as this to use the property