大佬教程收集整理的这篇文章主要介绍了swift – 是否应该使用条件编译来应对不同体系结构中CGFloat的差异?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var x = CGFloat(0.5) var result: CGFloat #if arch(x86_64) || arch(arm64) result = ceil(X) #else result = ceilf(X) #endif // use result
(那些已经混淆的背景信息:CGFloat是32位架构的“浮点”类型,64位架构的“双”(即编译目标),这就是为什么只使用ceil()或ceilf()它不会总是编译,具体取决于目标架构.请注意,您似乎无法使用CGFLOAT_IS_DOUBLE进行条件编译,只有架构标志……)
现在,这引起了关于在编译时修复事物与运行时间的评论中的一些争论,等等.我认为,我的回答被接受得太快,无法吸引对此有关的一些好的辩论.
所以,我的新问题:如果你想让你的iOS和OS X代码在32位和64位设备上运行,上面是一个安全,明智的事情吗?如果它是理智和明智的,还有更好的(至少是有效的,而不是“icky”)解决方案吗?
以上是大佬教程为你收集整理的swift – 是否应该使用条件编译来应对不同体系结构中CGFloat的差异?全部内容,希望文章能够帮你解决swift – 是否应该使用条件编译来应对不同体系结构中CGFloat的差异?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。