Si j'instancie un UIImage comme ceci:
UIImage *image = [[UIImage alloc] init];
L'objet est créé mais il ne contient aucune image.
Comment puis-je vérifier si mon objet contient une image ou non?
Vous pouvez vérifier s'il contient des données d'image.
UIImage* image = [[UIImage alloc] init];
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim == nil && cgref == NULL)
{
NSLog(@"no underlying data");
}
[image release];
Vérifiez cgImage
ou ciImage
dans Swift 3
public extension UIImage {
public var hasContent: Bool {
return cgImage != nil || ciImage != nil
}
}
CGImage: Si l'objet UIImage a été initialisé à l'aide d'un objet CIImage, la valeur de la propriété est NULL.
CIImage: si l'objet UIImage a été initialisé à l'aide d'un CGImageRef, le fichier la valeur de la propriété est nulle.
Ceci est la version mise à jour de @Kreiri, j'ai mis une erreur de méthode et de logique fixe:
- (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 ne pourrait être basé que sur CGImageRef ou CIImage. Si les deux sont nuls, cela signifie qu'il n'y a pas d'image. Exemple d'utilisation de la méthode des dons:
if (![self containsImage:imageview.image]) {
[self setImageWithYourMethod];
}
espérons que cela aidera quelqu'un.
Vérifier avec CGImageRef avec lui-même s’il contient une valeur nulle signifie que l’objet UIImage ne contient pas d’image ...