+1  A: 

I assume your point is that you're saving these to disk at some point, and you want to handle loading them after upgrade. There are tons of ways to handle this, but here's what I would recommend for this specific case:

  • Change the name of the file you're saving to include the version number (savedata-1.1.plist).
  • When you startup, look for your new versioned filename. If it doesn't exist, look for your old filename. If that exists, load it using the old rules, convert the data, resave under the new name, and delete the old file.

This scales well when you get to v1.2 and change your data again. You will need to keep around your "how to read v1.0" code more or less forever (or at least until you completely drop support for upgrading from 1.0), but that's true in any case.

Rob Napier