static char associated_obj_key; id anObj; NSMutableArray *a = [[NSMutableArray alloc] init]; objc_setAssociatedObject(anObj, &associated_obj_key, a, OBJC_ASSOCIATION_RETAIN); [a release]; - (NSMutableArray*) getOrCreateArray { static const char key; NSMutableArray* arr = objc_getAssociatedObject(self, &key); if (!arr) { arr = [NSMutableArray array]; objc_setAssociatedObject(self, &key, arr, OBJC_ASSOCIATION_RETAIN); } return arr; } - (void) someMethod { id something = // .... [[self getOrCreateArray] addObject: something]; }