Iphone 将UILabel中的文本颜色与UIColor进行比较失败

Iphone 将UILabel中的文本颜色与UIColor进行比较失败,iphone,objective-c,Iphone,Objective C,我试图将UIlabel中的文本颜色与UIColor进行比较,但结果总是错误的 以下代码生成结果: color equal 1, 0 我希望a和b都等于1。有没有其他方法来进行比较 bool a,b; UIColor *myColor1, *myColor2; myColor1 = [UIColor redColor]; mainViewController.timerLabel.textColor = [UIColor redColor]; myC

我试图将UIlabel中的文本颜色与UIColor进行比较,但结果总是错误的

以下代码生成结果:

color equal 1, 0
我希望a和b都等于1。有没有其他方法来进行比较

    bool a,b;

    UIColor *myColor1, *myColor2;

    myColor1 = [UIColor redColor];
    mainViewController.timerLabel.textColor = [UIColor redColor];

    myColor2 = [UIColor colorWithCGColor:mainViewController.timerLabel.textColor.CGColor];


    a = [[UIColor redColor] isEqual:myColor1];
    b = [[UIColor redColor] isEqual:myColor2];

    NSLog(@"color equal %i, %i",a,b);

UIColor未定义isEqual,isEqual是从NSObject继承的。因此,isEqual正在比较颜色的地址,并且将失败

CGColor有一个比较函数
CGColorEqualToColor()

然后可以比较CGColor颜色:

bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);
或者获取两种颜色的各个组成部分,然后使用

-(BOOL)getRed:(CGFloat*)红绿色:(CGFloat*)绿蓝色:(CGFloat*)蓝色alpha:(CGFloat*)alpha

谢谢Zaph,这很有意义。
bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);