¿Cómo animas explícitamente el backgroundColor de un CALayer?

Estoy tratando de construir un CABasicAnimation para animar la propiedad backgroundColor de un Core Animation CALayer, pero no puedo encontrar la manera de ajustar correctamente un valor CGColorRef para pasar a la animación. Por ejemplo

CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();
CGFloat values[4] = {1.0, 0.0, 0.0, 1.0}; 
CGColorRef red = CGColorCreate(rgbColorspace, values); 
CGColorSpaceRelease(rgbColorspace);

CABasicAnimation *selectionAnimation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
[selectionAnimation setDuration:0.5f];
[selectionAnimation setToValue:[NSValue valueWithPointer:red]];
[layer addAnimation:selectionAnimation forKey:@"selectionAnimation"];

parece no hacer nada a la propiedad backgroundColor, supongo porque entregarlo como un puntero envuelto en un NSValue no es la forma de pasarlo.

backgroundColor es una propiedad animable de CALayer, por lo que mi pregunta es: ¿cómo establece los valores From o To para esta propiedad en particular (preferiblemente de manera independiente de la plataforma Mac / iPhone)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta