objective c - CGContext contexto inválido 0x0
objective-c ios7 (3)
Gracias por la sugerencia de @shnaz.
Me encontré con el mismo problema y me costó algunas veces hasta que pudiera encontrar un problema, ojalá mi solución pudiera ayudar a otros si también tienen el mismo problema.
Probablemente no haya leído la documentación lo suficiente y soy nuevo en la creación de UIBezierPath. Resulta que en XCode6, .stroke()
y .fill()
a veces causan un contexto 0x0 no válido.
: CGContextSetFillColorWithColor: contexto no válido 0x0. Este es un error serio. Esta aplicación, o una biblioteca que utiliza, utiliza un contexto no válido y, por lo tanto, contribuye a una degradación general de la estabilidad y confiabilidad del sistema. Este aviso es una cortesía: por favor solucione este problema. Se convertirá en un error fatal en una próxima actualización.
: CGContextSetStrokeColorWithColor: contexto no válido 0x0. Este es un error serio. Esta aplicación, o una biblioteca que utiliza, utiliza un contexto no válido y, por lo tanto, contribuye a una degradación general de la estabilidad y confiabilidad del sistema. Este aviso es una cortesía: por favor solucione este problema. Se convertirá en un error fatal en una próxima actualización.
y errores similares repetidos con:
- CGContextSaveGState
- CGContextSetFlatness
- CGContextAddPath
- CGContextDrawPath
- CGContextRestoreGState
- CGContextSaveGState
- CGContextSetFlatness
- CGContextAddPath
- CGContextDrawPath
- CGContextRestoreGState
- CGContextSetFillColorWithColor
- CGContextSetStrokeColorWithColor
- CGContextSetFillColorWithColor
- CGContextSetStrokeColorWithColor
- CGContextGetBlendMode
- CGContextSetBlendMode
- y más...
En mi aplicación, no uso ningún material CGContext. Acabo de tener un UITextView
, UIButton
y UILabel
. Aún no se han agregado muchos códigos. Solo configura el contenido de UITextView
por:
[self.text_view setText:@"123"];
¿Cómo resolver el error?
Estoy usando Xcode 5.0 (compilación 5A1413), iOS 7 Simulator (Retina de 64 bits de 4 "), Mac OS X 10.8.5
Intente esto: En xcode, agregue un punto de interrupción simbólico a CGPostError. (Agregue un punto de interrupción simbólico y al tipo de campo Símbolo CGPostError)
Cuando se produce un error, el depurador detendrá las ejecuciones de código y podrá verificar las llamadas de pila de métodos y verificar los parámetros.
Tuve errores similares al usar CGContext y UIBezierPaths, usé el enfoque de Juraj Antas y encontré la causa de inmediato.
Estoy dibujando en un UIImageView usando CGContext. Primero creo un UIBezierPath luego lo dibujo usando CGContextAddPath(..)
. Descubrí que estaba configurando el color al crear el UIBezierPath, que a xcode no le gusta y de todos modos es sobrescrito por CGContextSetStrokeColorWithColor(..)
. Tan pronto como quité el UIColor.whiteColor().set()
de mi código de creación UIBezierPath, los errores desaparecieron.