Associated objects are useful when you want to add functionality to existing classes which requires holding state.
For example, adding a activity indicator to every UIView:
Objective-C Implementation
#import <objc/runtime.h>
static char ActivityIndicatorKey;
@implementation UIView (Ac...