2012-03-18 18 views
5

Tuve un bloqueo en mi código, y lo he rastreado todo el camino de regreso a una línea que se colgaba al pasar 2 CGColorRefs. Aquí están los objetos:CGColorRef que causa el bloqueo

CGColorRef startColor = [[UIColor colorWithWhite:0.92 alpha:1.0]CGColor]; 
CGColorRef endColor = [[UIColor colorWithWhite:0.94 alpha:1.0]CGColor]; 

NSLog(@"start: %@ end: %@", startColor, endColor); 

El NSLog devuelve un bloqueo. ¿Que hay de malo con ellos?

EDITAR - donde está chocando:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGFloat locations[] = { 0.0, 1.0 }; 
NSArray *colors = [NSArray arrayWithObjects:(__bridge_transfer id)startColor, (__bridge_transfer id)endColor, nil]; 
+1

¿Qué excepción se produce? Esto funciona bien para mí –

+1

Proporcione detalles de excepción, incluida la línea errante en sí, no solo los parámetros que está pasando. – GarlicFries

+0

Editado con el lugar donde se cuelga, si no coloco un NSLog allí. – Andrew

Respuesta

13

ARC. ARCO. ARCO. UIColor-> CGCOlor es una de las grandes trampas de ARC ...

Ver una inmersión profunda aquí:

http://weblog.bignerdranch.com/?p=296

Y redactó algunas de las mejores prácticas generales de ARC (incluyendo su problema) aquí:

http://amattn.com/2011/12/07/arc_best_practices.html

+1

Sé que esto es hace unos meses, pero Muchas gracias por esto. Pasé las últimas 4 horas tratando de entender qué diablos estaba sucediendo. – pdriegen

+0

¡Sin problema! Siempre me gusta escuchar que las cosas que escribo ayudan a la gente. – amattn

+0

Tengo un problema similar, pero no está bloqueado en el dispositivo, simplemente no funciona. Estoy tratando de recortar una imagen usando una categoría. Simulador está bien y el dispositivo muestra la imagen completa. Usando ARC. ¿Podría este problema estar relacionado? – Daniel

Cuestiones relacionadas