I quite like the cat names for OS X but in general I feel there should be a pattern if you're going to give names like that. The Mac is on a sufficiently infrequent update cycle that I can learn 8 names over 10 years without too much trouble, but iOS updates come so fast I think it would soon become overcomplicated. Google is on to something with android though...
Cookie
Donut
Eclair
Froyo
Gingerbread
Honeycomb
Ice cream sandwich
Jelly bean
K L M N O P...
The current iOS system seems to work pretty well - you go up one major version number per year, with interim 'service pack' updates every few months, and the occasional bug fix/security update in between.
The disadvantage with a naming system is that you need to learn the names, and you can't tell the version number from the name. For example I know my iPhone and iPad are running iOS 5.1 - not too hard to remember - and I also know my work-issued HTC Desire S is running gingerbread (2.3), but only upon closer investigation do I find out that the full version is 2.3.5.00972b13