+ [UIColor whiteColor]为什么不等于另一种白色?

Ger*_*eri 3 cocoa-touch equality uikit uicolor ios

这真的很奇怪。与+[UIColor redColor]我创建的红色比较,我得到的结果是相同的,但与+[UIColor whiteColor]其他白色比较则没有。

// This test passes.
XCTAssertEqualObjects([UIColor redColor],
                      [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0],
                      @"Red should equal red.");

// While this test fails!
XCTAssertEqualObjects([UIColor whiteColor],
                      [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0],
                      @"White should equal white.");
Run Code Online (Sandbox Code Playgroud)

在扩展UIColor一些有用的功能时,这个事实确实很烦人。

有人可以帮我一下吗?

Mic*_*ann 5

UIColor”并不总是基于RGBA值。

UIColor处理不同的颜色空间,例如CMYK颜色;对于白色,您可以通过来获得白色[UIColor colorWithWhite:alpha:]

我怀疑[UIColor whiteColor]你的情况是平等的[UIColor colorWithWhite:1.0 alpha:1.0]