create iphone uikit uiimage core-graphics cgimage

iphone - create - -[UIImage CGImage] devolviendo nil



init uiimageview swift (4)

Me pregunto bajo qué circunstancias se rompe este código en la segunda afirmación. En otras palabras, ¿cuándo puede -[UIImage CGImage] devolver nil ? La documentación no es muy reveladora aquí.

- (void)setImage:(UIImage *)anImage { assert(anImage); CGImageRef cgimage = anImage.CGImage; assert(cgimage); }

Estoy bastante seguro, el UIImage es correcto ya que se obtiene del paquete de la aplicación. Hasta ahora no he podido reproducir el caso, pero sí veo algunos informes de fallas del usuario.


Que yo sepa, si la primera afirmación pasa (mostrando que una imagen no es nula) significa que no pudo cargar la imagen. Verifique para asegurarse de que la imagen se está copiando en su paquete.


Un caso en el que una anImage sería nula, pero la cgimage sería nula podría cgimage siguiente manera:

UIImage* myImage = [[UIImage alloc] initWithCGImage:nil];

Como respuestas anteriores han indicado que hay otras formas en que uno podría encontrarse en tal escenario.


Otra posibilidad es que tengas varios hilos que acceden al mismo objeto UIImage al mismo tiempo; esto estaba sucediendo en mi código con el mismo síntoma.

Eso también podría explicar sus informes de fallas esporádicas, ya que los patrones de acceso dependerían de los tiempos que cambian de ejecución a ejecución.


Una posibilidad más que he encontrado en los documentos:

Si el objeto UIImage se inicializó utilizando un objeto CIImage, el valor de la propiedad es NULL.