在Swift中凑成一个CGFloat

前端之家收集整理的这篇文章主要介绍了在Swift中凑成一个CGFloat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在Swift中完成CGFloat?
我试过ceil(CDouble(myCGFloat)),但只适用于iPad Air& iPhone 5S。

当在另一个模拟设备上运行时,我收到一个错误,说’NSNumber’不是’CGFloat’的子类型,

更新:苹果现在定义了一些CGFloat特定版本的常见功能,如ceil:
func ceil(x: CGFloat) -> CGFloat

…专门处理32/64位差异。如果你简单地使用ceil与CGFloat的参数,它现在应该在所有的架构工作。

我原来的答案:

这是相当可怕的,我想,但任何人都可以想到一个更好的方法? #if似乎不适用于CGFLOAT_IS_DOUBLE;我认为你只限于构建配置,从I can see in the documentation for conditional compilation

var x = CGFloat(0.5)

#if arch(x86_64) || arch(arm64)
var test = ceil(x)
#else
var test = ceilf(x)
#endif

猜你在找的Swift相关文章