Enable warnings.
Use UIViewAnimationOptions instead of UIViewAnimationCurve
Use __weak to avoid retain cycles.