Shouldn’t you be using the [CAMediaTiming beginTime] property (reference)?
See Customizing the Timing of an Animation in the Core Animation Programming Guide.
CABasicAnimation *animation;
animation.beginTime = CACurrentMediaTime() + 0.3; //0.3 seconds delay