La asignación de un CGColor existente a una propiedad CGColor funciona en el simulador de iOS, no en el dispositivo iOS. ¿Por qué

Sé cómo solucionar el problema que estoy a punto de esbozar, sin embargo, estoy un poco desconcertado de por qué el escenario de código funciona en el simulador de iOS pero no en mi iPad.

Tengo un método que verifica varias propiedades y luego establece el color de fondo de unCALayer dependiendo del estado de una propiedad. El siguiente código es similar a mi método de asignación de color:

//This will be the CALayer BGColor...
CGColor c = UIColor.blueColor.CGColor; //Blue is the default
switch (myState)
{
    case state_one:
        c = UIColor.greenColor.CGColor;
        //... more code ...
        break;
    case state_two:
        c = UIColor.redColor.CGColor;
        //... more code ...
        break;
    case state_three: //multiple cases are like the state_three case.
        //Other code, but I don't need to assign the color.  Blue works...
}

myCALayer.backgroundColor = c; //Oh-noes!!! Here we get the dreaded EXC_BAD_ACCESS on iPad
//...more code dealing with the layer.

El código anterior funciona sin problemas en el simulador. Sin embargo, cuando ejecuto la aplicación en mi iPad, se bloquea en labackgroundColor asignación.

Puedo arreglar esto deshaciéndome de laCGColor variable y asignar el color de fondo directamente desde mi declaración de cambio / caso, y eso es lo que planeo hacer.

Sin embargo, tengo curiosidad. ¿Por qué funcionaría esto en un entorno y no en el otro?

ACTUALIZA

Parejas de pareja. Primero, vale la pena mencionar que este es un proyecto ARC, que usa Xcode 4.2, dirigido a dispositivos iOS 5. Además, mi código de asignación de color no es del todo lo que parece porque tengo una serie de definiciones que utilizo para configurar estos colores porque están referenciados en toda mi aplicación.

Esto es lo que algunos de los#defineas declaraciones de @ se ven así:

#define BLUE  [UIColor colorWithRed:8.0/255.0 green:80.0/255.0 blue:150.0/255.0 alpha:1.0].CGColor
#define GREEN (UIColor.blueColor.CGColor)
//...and there are about 6 other colors

ntenté simplificar mi código porque el compiladordeberí reemplazar las referencias a mis referencias a mis definiciones. Aún así, vale la pena mencionarlo por si acaso.

Respuestas a la pregunta(6)

Su respuesta a la pregunta