There are several articles out there that talk about the difference in speed between the two, like 这个. If you're iterating through an unordered collection, NSSet is great. However, in many cases, you need to do things that only an NSArray can do, so you sacrifice the speed for those abilities.