2011-11-11 3 views
0

J'essaie d'utiliser obtenir la valeur d'un blanc UIColor par ce qui suit (redColor est juste par exemple):Problème avec [UIColor getWhite: alpha:]

UIColor *col = [UIColor redColor]; 
CGFloat *white; 

if([col getWhite:white alpha:nil]) 
{ 
    NSLog(@"worked"); 
} 
else 
{ 
    NSLog(@"didn't"); 
} 

Mais ce toujours imprime « n » ai pas t ", et je ne comprends pas pourquoi. La définition d'UIColor.h indique "Si le récepteur est d'un espace colorimétrique compatible, tous les paramètres non-NULL sont remplis et 'YES' est renvoyé, sinon les paramètres restent inchangés et 'NO' est retourné." donc je présume que le récepteur est d'un espace de couleurs non compatible ... Mais je ne sais pas ce que cela signifie. Des idées?

Répondre

5

Vous passez un pointeur sur un morceau aléatoire de mémoire (CGFloat * blanc;)

Vous devez créer un CGFloat statique et passer une référence à ce

UIColor *col = [UIColor redColor]; 
CGFloat white; 

if([col getWhite:&white alpha:nil]) 
{ 
    NSLog(@"worked"); 
} 
else 
{ 
    NSLog(@"didn't"); 
} 

Il est possible qu'il ne pas être en mesure de convertir en niveaux de gris, vous pouvez vérifier en essayant

UIColor *col = [UIColor colorWithWhite:1.0 alpha:1.0]; 
CGFloat white; 

if([col getWhite:&white alpha:nil]) 
{ 
    NSLog(@"worked"); 
} 
else 
{ 
    NSLog(@"didn't"); 
} 
+0

Merci pour cela, j'ai réalisé le week-end qui était ce que je faisais, mais n'a pas eu la chance de me corriger ... – mrh89

Questions connexes