- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下代码:
@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/
我有一个经典的 ASP 页面 (VBscript),它在服务器端生成 XML,然后 Response.Writes。该页面根本没有客户端。 但是我需要将其转换为 JSON。由于我找不到有效的 ASP
我想从客户端应用程序的 HDFS 中读取特定的 SequenceFile。我可以使用 SequenceFile.Reader 来做到这一点,它工作正常。但是是否也可以通过分析抛出的 IOExcepti
我是一名优秀的程序员,十分优秀!