objective-c ios7

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.