如何在Swift中汇总CGFloat?我已经尝试过了,ceil(CDouble(myCGFloat))但是只能在iPad Air和iPhone 5S上使用。
ceil(CDouble(myCGFloat))
在另一台模拟设备上运行时,出现错误提示 'NSNumber' is not a subtype of 'CGFloat'
'NSNumber' is not a subtype of 'CGFloat'
更新 :Apple现在已经定义了一些CGFloat特定版本的常用功能,例如ceil:
ceil
func ceil(x: CGFloat) -> CGFloat
…专门处理32/64位的差异。如果仅使用ceilCGFloat参数,则它现在应在所有体系结构上都适用。
我的原始答案:
我认为这太可怕了,但是谁能想到更好的方法?#if似乎没有工作CGFLOAT_IS_DOUBLE; 根据我在条件编译文档中看到的内容,我认为您仅限于构建配置。
#if
CGFLOAT_IS_DOUBLE
var x = CGFloat(0.5) #if arch(x86_64) || arch(arm64) var test = ceil(x) #else var test = ceilf(x) #endif