2011-10-28 8 views
5
/* Adding the Path */ 
UserGraphBuff = UIGraphicsGetCurrentContext(); 

CGContextSetRGBStrokeColor(UserGraphBuff,5,10,0,1); 
CGContextSetLineWidth(UserGraphBuff, 2); 

CGContextBeginPath(UserGraphBuff); 

//line to last user point 
CGContextAddLineToPoint(UserGraphBuff, (*xVal)[sizeof xVal/sizeof *xVal - 1], (*yNewVal)[sizeof yNewVal/sizeof *yNewVal - 1]); 
//line to rest of user points in reverse order 
for (int i = sizeof xVal/sizeof *xVal - 1; i > -1; i--){ 
    CGContextAddLineToPoint(UserGraphBuff, (*xVal)[i], (*yNewVal)[i]); 
} 

//EOFill 
CGContextEOFillPath(UserGraphBuff); 

Arriba está el código que estoy tratando de resolver. Se supone que debe hacer lo que CGContext dice que hace, pero no estoy obteniendo nada. sigo recibiendo este error:error 'contexto no válido 0x0' al utilizar funciones CGContext *

Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetRGBStrokeColor: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetLineWidth: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextBeginPath: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextDrawPath: invalid context 0x0 

me refiero a la CGContextRef en mi archivo de cabecera.

no creo que entienda CGContext lo suficientemente bien ni sé lo que CGContextRef debería ser.

+0

¿Dónde vive este código? En el 'drawRect' de una subclase' UIView' – MusiGenesis

+0

'- (void) userShow {' –

+1

¿Qué diablos es eso? ¿Qué hace? ¿Lo llama '-drawRect:'? –

Respuesta

17

Para su código funcione, tiene que ser ejecutada en el método de la subclase UIViewdrawRect (y no llama directamente drawRect - esto es llamado por el sistema operativo cuando se necesita la UIView para rendir en sí). Presumiblemente intentas ejecutar este código desde un evento táctil o desde viewDidLoad o algo así.

+0

Es en su propio método de varias cosas. no se llama solo. Estoy ejecutando esto desde un evento de verificación. Quiero que los datos de los usuarios se cotejen con el dibujo real (es prácticamente un juego de rastreo). En este punto, estoy tratando de hacer un camino de lo que la persona como dibujada todo listo. –

+6

Para reiterar: su código no funcionará (lo que significa que arrojará los errores que ve) a menos que se ejecute en el método 'drawRect' de una subclase' UIView'. – MusiGenesis

+4

Y para explicar: UIView configura el contexto actual antes de llamar a su 'drawRect:'. Esta es una característica: usted dibuja cuando se necesita dibujo, que el sistema realiza un seguimiento por usted. No luchar contra eso; mueva su código de dibujo donde se supone que debe estar, y trabaje con el sistema. Cuando algo cambia que la vista necesitará volver a dibujar, configure la vista como que necesita visualización. –

Cuestiones relacionadas