gpt4 book ai didi

ios - IF 比较 CGFloat 值 - Xcode 7 给出错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:05 26 4
gpt4 key购买 nike

我有以下代码:

 @property (nonatomic, assign) CGFloat floatValue;

--

 if (floatValue)
{
//Do something
}

自 Xcode 7 - 发生编译器错误:

Implicit conversion turns floating-point number into integer: 'CGFloat' to 'bool'

任何人都可以解释发生了什么/建议修改代码以纠正

最佳答案

这取决于如何实现从 CGFloat 到 Bool 的转换。这可能取决于 Objective-C 的实现,甚至取决于 IEEE 浮点规范的实际处理器实现。

无论哪种方式,您绝对不应该依赖它。特别是因为不能保证 float 是准确的。您最终可能会得到非常接近于 0 的值,但 if 语句会失败。

你应该像这样根据你正在寻找的值明确地测试 float :

if (floatValue != 0.0f)
{
//we know exactly what will happen
}

在 Swift 中,编译器甚至不允许你做这样的事情,因为它试图保证你的安全:

if (floatValue)
{
//might happen, might not. who knows
}

在 Swift 中,如果 variable 是 Bool 类型,你只能使用 if (variable) 语法。

Objective-C 编译器不会强制您采用这种行为,但如果您希望您的代码以可预测的方式运行且可移植,您应该遵守它。

关于ios - IF 比较 CGFloat 值 - Xcode 7 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32915224/

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