Ios [UIColor getWhite:alpha:]存在问题

Ios [UIColor getWhite:alpha:]存在问题,ios,pointers,uicolor,Ios,Pointers,Uicolor,我试图通过以下方式使用获取UIColor的白色值(例如,redColor): 但这总是打印“没有”,我不明白为什么。UIColor.h的定义是“如果接收器是兼容的颜色空间,则填充任何非空参数并返回‘YES’。否则,参数保持不变并返回‘NO’。”因此,我假设接收器是不兼容的颜色空间。。。。但我不知道那是什么意思。有什么想法吗?您正在传递指向随机内存块的指针(CGFloat*white;) 您应该创建一个静态CGFloat并传递对它的引用 UIColor *col = [UIColor redCol

我试图通过以下方式使用获取UIColor的白色值(例如,redColor):


但这总是打印“没有”,我不明白为什么。UIColor.h的定义是“如果接收器是兼容的颜色空间,则填充任何非空参数并返回‘YES’。否则,参数保持不变并返回‘NO’。”因此,我假设接收器是不兼容的颜色空间。。。。但我不知道那是什么意思。有什么想法吗?

您正在传递指向随机内存块的指针(CGFloat*white;)

您应该创建一个静态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");
}

您正在传递指向随机内存块的指针(CGFloat*white;)

您应该创建一个静态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");
}

感谢这一点,我在周末意识到这就是我正在做的,但没有机会纠正自己…感谢这一点,我在周末意识到这就是我正在做的,但没有机会纠正自己。。。