I'm like one of three people still writing new Objective-C, but anyway: I've had customers request that I store data in a version-control friendly way, instead of a binary blob. My gut reaction to that is to use JSON: it's text, it diffs, etc. I want the diffs to be as friendly as possible though; if you change a single property in a document, I want to see a single line diff, and that means I'll need a predictable key order. Out of the box though, NSJSONSerialization only gives you two options: unordered keys, or lexicographic order. The latter would work, but I'd also like my keys to make some sort of sense.
It turns out that if you don't specifically ask for sorted keys, NSJSONSerialization will output them in the order provided by your NSDictionary's keyEnumerator. A little bit of subclassing (helped out by Cocoa with Love) and you get a stable output.