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.
Its counterpart NSMutableOrderedSet
is the mutable addition to the datatype.