小编Eug*_*nio的帖子

如何比较两个 UIDynamicProviderColor?

我正在比较两个UIColor使用新的 iOS 13 初始化的init(dynamicProvider:)

https://developer.apple.com/documentation/uikit/uicolor/3238041-init

但这就是我在单元测试中将它们与以下内容进行比较时得到的运行时XCTAssertEqual

XCTAssertEqual failed: ("Optional(<UIDynamicProviderColor: {...}; 
provider = <__NSMallocBlock__: {...}>>)") is not equal to 
("Optional(<UIDynamicProviderColor: {...}; provider = <__NSMallocBlock__: {...}>>)")
Run Code Online (Sandbox Code Playgroud)

这是我如何创建颜色的示例:

struct Style {
    static var color: UIColor {
        if #available(iOS 13.0, *) {
                return UIColor { traitCollection in
                    return traitCollection.userInterfaceStyle == .dark ? .secondarySystemBackground : UIColor.white
                }
        } else {
            return UIColor.white
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试代码:

func testExample() {
    XCTAssertEqual(Style.color, Style.color)
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用扩展名覆盖isEqual方法,UIColor但显然它没有被调用。

你有什么解决方法吗?

swift ios13

6
推荐指数
1
解决办法
860
查看次数

标签 统计

ios13 ×1

swift ×1