【问题标题】:Cannot invoke '-' with an argument list of type (CGFloat, CGFloat)无法使用类型 (CGFloat、CGFloat) 的参数列表调用“-”
【发布时间】:2014-09-22 19:05:25
【问题描述】:

我有这个代码:

let startX = CGFloat(arc4random_uniform(maxX + (quarterX*2))) - quarterX

其中 quarterX 是 CGFloat。

这行代码给出了构建错误

不能使用类型为 (CGFloat, CGFloat) 的参数列表调用“-”

这对我来说似乎很奇怪。这里有什么作用?

【问题讨论】:

    标签: swift


    【解决方案1】:

    arc4random_uniform 需要 UInt32,但您传递的是 CGFloat(我认为 maxX 属于同一类型)。所以你必须转换这个表达式:

    maxX + quarterX * 2
    

    UInt32:

    let startX = CGFloat(arc4random_uniform(UInt32(maxX + quarterX * 2))) - quarterX
    

    让我说错误信息有点误导,完全没用:)

    【讨论】:

    • 啊,是的。当然。可以这么说,那个奇怪的错误消息让我忘记了踪迹。
    • 我了解到,如果编译器消息没有任何意义,那么它就是另一回事,通常是一件简单的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多