In a situation where I need to save all data members in a NSDictionary, does it make more sense to put structs (custom types, or even scalars i.e. CGPoint) in my own wrapper (not NSValue), so I can avoid the overhead of encoding/decoding it every time I get or set the member?
For large structs (16 floats) the savings is IMO significant. But even with a CGPoint I'd be saving 4 bytes of copying plus encoding/decoding time.