The problem is not the plist, but the data structure that you are trying to place inside it. Dictionaries (in this context <dict> ) store information regarding a key meaning, in which there is no concept of order.
If you want to save objects of any type in any particular order, you must save the NSArray object to plist instead of NSDictionary. Arrays have the concept of order, because they store items at a numerical index representing the order of items in the array.
source share