gpt4 book ai didi

ios - 比较 OSX 和 iOS 两个节点的 SKColor?

转载 作者:行者123 更新时间:2023-11-29 03:02:29 26 4
gpt4 key购买 nike

我正在研究 a subclass of SKLabelNode allowing line-breaks通过使用换行符 \n。它进展顺利,我目前正在准备 podspec 之前确保它适用于 OSX 和 iOS。

从表面上看它似乎工作正常,但我的一个测试在为 OSX 构建时失败了,尽管通过了 iOS。它以某种方式与 NSColorSpace 相关,但这对我来说是未知领域。这是类中将颜色复制到子节点的方法:

- (void)setFontColor:(SKColor *)fontColor{
[super setFontColor: fontColor];
self.propertyStateholderNode.fontColor = fontColor;
for (SKLabelNode *subNode in self.subNodes) {
subNode.fontColor = fontColor;
}
_fontColor = fontColor;
}

这是失败的测试,(我已经删除了对在两个平台上都通过的其他属性的测试):

- (void)testThatSubnodesInheritsPropertiesFromParent{
NORLabelNode *threeLineNode = [self nodeWithThreeSubNodes];
threeLineNode.fontColor = [SKColor greenColor];

for (SKLabelNode *subNode in threeLineNode.subNodes) {
XCTAssertEqualObjects(threeLineNode.fontColor, subNode.fontColor, @"The subnodes should have the same fontColor as the parent.");
}
}

测试失败详情如下:((threeLineNode.fontColor) 等于 (subNode.fontColor)) 失败:("NSCalibratedRGBColorSpace 0 1 0 1") 不等于 ("NSDeviceRGBColorSpace 0 0.976895 0 1") ...

我完全不清楚节点如何以不同的色彩空间结束......

最佳答案

因为我们知道颜色空间不同,所以我会在使用 -colorUsingColorSpace:(NSColorSpace *) 进行比较之前尝试将它们转换为相同的颜色空间。 .您可以将它们解析为一个已知的色彩空间或将它们转换为彼此的色彩空间。同样只有在 Mac 上才会发生这种情况并且 NSColorSpace 可用。

一个post在 CocoaBuilder 邮件列表上讨论了比较组件值,但这并不理想,因为组件不区分 rgb 和灰度。

关于ios - 比较 OSX 和 iOS 两个节点的 SKColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com