2011-11-18 14 views

risposta

64

È possibile verificare se sono presenti dati di immagine.

UIImage* image = [[UIImage alloc] init]; 

CGImageRef cgref = [image CGImage]; 
CIImage *cim = [image CIImage]; 

if (cim == nil && cgref == NULL) 
{ 
    NSLog(@"no underlying data"); 
} 
[image release]; 
+0

Grazie mille, funziona perfettamente! – Jonathan

+0

Ma [immagine CIImmagine]; disponibile solo su iOS 5. Che dire di 4.3? –

+4

non funziona come cim restituisce nil – hii

0

Verifica con CGImageRef con sé wheather contiene valore nullo significa UIImage oggetto non contiene un'immagine .......

8

Controllare cgImage o ciImage, in 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.

+0

si può dare un aggiornamento per swift 3 –

+0

@AnkitKumarGupta – onmyway133

0

Questa è la versione aggiornata di @Kreiri, ho inserito un metodo e un errore logico corretto:

- (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 può basarsi solo su CGImageRef o CIImage. Se entrambi sono nulli significa che non c'è immagine. Esempio utilizzo di dare metodo:

if (![self containsImage:imageview.image]) { 
    [self setImageWithYourMethod]; 
} 

augurandovi aiutare qualcuno.

Problemi correlati