Si una instancia de un UIImage así:UIImage, comprobar si contienen la imagen
UIImage *image = [[UIImage alloc] init];
El objeto se crea pero no contiene ninguna imagen.
¿Cómo puedo verificar si mi objeto contiene una imagen o no?
Si una instancia de un UIImage así:UIImage, comprobar si contienen la imagen
UIImage *image = [[UIImage alloc] init];
El objeto se crea pero no contiene ninguna imagen.
¿Cómo puedo verificar si mi objeto contiene una imagen o no?
Puede verificar si tiene algún dato de imagen.
UIImage* image = [[UIImage alloc] init];
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim == nil && cgref == NULL)
{
NSLog(@"no underlying data");
}
[image release];
Comprobar con CGImageRef consigo mismo tiempo lo que contiene el valor nulo significa UIImage objeto no contiene la imagen .......
Comprobar para cgImage
o ciImage
, en Swift 3
public extension UIImage {
public var hasContent: Bool {
return cgImage != nil || ciImage != nil
}
}
CGImage: If the UIImage object was initialized using a CIImage object, the value of the property is NULL.
CIImage: If the UIImage object was initialized using a CGImageRef, the value of the property is nil.
puede por favor dar una actualización para swift 3 –
@AnkitKumarGupta done – onmyway133
Esta es la versión actualizada de @Kreiri, puse en un método y corrigió un error de lógica:
- (BOOL)containsImage:(UIImage*)image {
BOOL result = NO;
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim != nil || cgref != NULL) { // contains image
result = YES;
}
return result;
}
Un UIImage solo puede basarse en CGImageRef o CIImage. Si ambos son nulos significa que no hay imagen. Ejemplo de uso del método de entrega:
if (![self containsImage:imageview.image]) {
[self setImageWithYourMethod];
}
Espero que ayude a alguien.
Muchas gracias, ¡eso funciona a la perfección! – Jonathan
Pero [imagen CIImage]; disponible solo en iOS 5. ¿Qué hay de 4.3? –
no funciona como cim returns nil – hii