The iOS framework that grows only as fast as its documentation
Non-Retaining Collections


NSMutableArray * NICreateNonRetainingMutableArray (void)
NSMutableDictionary * NICreateNonRetainingMutableDictionary (void)
NSMutableSet * NICreateNonRetainingMutableSet (void)


For collections that don't retain their objects.

Non-retaining collections have historically been used when we needed more than one delegate in an object. However, NSNotificationCenter is a much better solution for n > 1 delegates. Using a non-retaining collection is dangerous, so if you must use one, use it with extreme care. The danger primarily lies in the fact that by all appearances the collection should still operate like a regular collection, so this might lead to a lot of developer error if the developer assumes that the collection does, in fact, retain the object.

Function Documentation


Creates a mutable array which does not retain references to the objects it contains.

NSMutableArray* NICreateNonRetainingMutableArray:;

Typically used with arrays of delegates.


Creates a mutable dictionary which does not retain references to the values it contains.

NSMutableDictionary* NICreateNonRetainingMutableDictionary:;

Typically used with dictionaries of delegates.


Creates a mutable set which does not retain references to the values it contains.

NSMutableSet* NICreateNonRetainingMutableSet:;

Typically used with sets of delegates.