Man*_*ani 10 types type-conversion cgfloat swift
试图在返回`CGFloat的函数中进行算术运算,我得到一个错误:
找不到接受提供的参数的'/'的重载
func kDCControlDegreesToRadians(x : CGFloat) -> CGFloat
{
return (M_PI * (x) / 180.0) // error is here.
}
Run Code Online (Sandbox Code Playgroud)
还有其他人见过这类问题吗?
Sul*_*han 16
这是一个问题double
,以float
转换.
在64位计算机上,CGFloat
定义为double
,您将编译它没有问题,因为M_PI
并且x
都是双打.
在32位机器上,CGFloat
是一个float
但M_PI
仍然是双倍的.不幸的是,Swift中没有隐式转换,所以你必须明确地转换:
return (CGFloat(M_PI) * (x) / 180.0)
Run Code Online (Sandbox Code Playgroud)
180.0
推断出文字的类型.
在Swift 3中
M_PI
已弃用,请CGFloat.pi
改用:
return (x * .pi / 180.0)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11459 次 |
最近记录: |