2011-11-11 52 views
0

我試圖使用下獲得的UIColor的白色值(redColor只是舉例):問題與[的UIColor getWhite:阿爾法:]

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

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

但這始終打印「沒」噸「,我不明白爲什麼。 UIColor.h的定義是:「如果接收者是兼容的色彩空間,則填充任何非NULL參數並返回'YES',否則參數保持不變,並返回'NO'。所以我假設接收器是不兼容的色彩空間....但我不知道這意味着什麼。有任何想法嗎?

回答

5

您指針傳遞到一個隨機一塊內存(CGFloat的*白色)

應創建一個靜態CGFloat的和傳遞給它的基準

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

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

可能的是,它會不能從灰度轉換,你可以通過嘗試來檢查

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

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

感謝你們,我在週末意識到我正在做什麼,但沒有機會糾正自己...... – mrh89