As you know, an
Array stores elements while preserving the order of their addition. You also may have learned that
Sets are perfect for storing a collection of data where every element is unique. Because of its implementation it is also easy to perform boolean operations on two
Sets (like computing the intersection or difference of two Sets). However, Sets will not preserve the order of their elements. What is more, they gain their efficiency only from not remembering information about the order.
This is where
NSOrderedSet comes into play. According to Apples documentation, it acts as a Set (containing an element only once) whilst preserving the order of their additions.
NSMutableOrderedSet is the mutable addition to the datatype.