Update of my previous TsPropertyListRepresentation. Any object which conforms to the NPKPropertyListRepresentation protocol automatically gains a number of methods for converting it to and from a plist. You can control what's serialized by overriding +keysForPropertyListRepresentation, and how it's done by overriding various other class methods. NSArray and NSSet are also handled more or less automatically.