如何在Swift中完成CGFloat?
我试过ceil(CDouble(myCGFloat)),但只适用于iPad Air& iPhone 5S。
我试过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