Animación de opacidad CALayer

Quiero crear una animación CALayer que ofrezca una especie de efecto "llamativo". Para eso estoy tratando de animar la propiedad 'opacidad', pero mi problema es que no tengo idea de por dónde empezar y cómo hacerlo.

Aquí hay una explicación gráfica de la animación:

opacity
   |    ___
1  |   |   |
   |   |   |    * repeatCount
0  |___|   |_ . . .
   -------------------------> time
    |______|
    duration

La opacidad comienza en 0, luego se anima a 1, luego a 0 nuevamente (esta animación de 0 a 1 a 0 toma una cantidad de segundos igual a la duración). A continuación, este proceso se repite veces 'repetir cuenta'.

Aquí hay algunos antecedentes sobre el código:

float duration = ...; // 0.2 secs, 1 sec, 3 secs, etc
int repeactCount = ...; // 1, 2, 5, 6, ect

CALayer* layer = ...; // I have a CALayer from another part of the code
layer.opacity = 0;

// Animation here

done = YES; // IN THE END of the animation set this ivar to yes

Cuál es la mejor manera de lograr esto? Nunca he usado CALayers antes, así que esta es también una buena oportunidad para aprender cómo funciona su sistema de animación. Por cierto, he buscado en los documentos y entiendo cómo agrega una o dos animaciones simples, pero no tengo idea de cómo hacer esto en particular.

Respuestas a la pregunta(2)

Su respuesta a la pregunta