gpt4 book ai didi

swift - 由于 Swift 缺少 CGFloat 的隐式转换而造成的困惑

转载 作者:IT王子 更新时间:2023-10-29 05:33:13 24 4
gpt4 key购买 nike

尝试在返回 `CGFloat 的函数中进行算术运算,出现错误:

Couldn't find overload for '/' that accepts supplied arguments

func kDCControlDegreesToRadians(x : CGFloat) -> CGFloat
{
return (M_PI * (x) / 180.0) // error is here.
}

还有其他人遇到过此类问题吗?

最佳答案

这是 doublefloat 转换的问题。

在 64 位机器上,CGFloat 被定义为 double 并且您可以毫无问题地编译它,因为 M_PIx 都是 double 。

在 32 位机器上,CGFloat 是一个 floatM_PI 仍然是一个 double。不幸的是,Swift 中没有隐式转换,因此您必须显式转换:

return (CGFloat(M_PI) * (x) / 180.0)

180.0 文字的类型已被推断。

在 Swift 3 中

M_PI 已弃用,请改用 CGFloat.pi:

return (x * .pi / 180.0)

关于swift - 由于 Swift 缺少 CGFloat 的隐式转换而造成的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com