The Quartz core animation methods are easy and simple to use but don't help you if you are are doofus. Setting up a CAKeyframeAnimation to act on the a property of a layer/view whatever will not warn you if that property does not exist.
I just spent 2 hours trying to figure out why this didn't work...
CAKeyframeAnimation *moveLeft = [CAKeyframeAnimation animationWithKeyPath:@"postion"];
The answer was - there is no such property as POSTION.
Doh! FacePalm! etc.