一尘不染

在Swift中汇总CGFloat

swift

如何在Swift中汇总CGFloat?我已经尝试过了,ceil(CDouble(myCGFloat))但是只能在iPad Air和iPhone
5S上使用。

在另一台模拟设备上运行时,出现错误提示 'NSNumber' is not a subtype of 'CGFloat'


阅读 499

收藏
2020-07-07

共1个答案

一尘不染

更新 :Apple现在已经定义了一些CGFloat特定版本的常用功能,例如ceil

func ceil(x: CGFloat) -> CGFloat

…专门处理32/64位的差异。如果仅使用ceilCGFloat参数,则它现在应在所有体系结构上都适用。

我的原始答案:

我认为这太可怕了,但是谁能想到更好的方法?#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
2020-07-07