我正在使用Xcode和Swift 3。
我有以下一行:
let x = playableRect.minX + (hexagon.size.width / 2) + (i % 4) * hexagon.size.width
返回错误Ambiguous reference to member '/'
我不知道为什么会失败,
let x = playableRect.minX + (hexagon.size.width * 2) + (i % 4) * hexagon.size.width
有效,
let x = playableRect.minX + (hexagon.size.width / 2) + i * hexagon.size.width
也有效。当我在同一计算中合并/
和%
时,会发生错误。
你知道为什么吗?
答案 0 :(得分:1)
由于i
是Int
,而其他所有内容都是CGFloat
,因此它不知道如何处理这些不同的类型。您需要更改它,以便所有内容都是CGFloat
。
let x = playableRect.minX + (hexagon.size.width / 2) + CGFloat(i % 4) * hexagon.size.width
在旁注中,您收到的错误消息很奇怪。你的代码中肯定会有其他东西导致它给你一个无用的错误信息。我将相同的代码放入游乐场并得到以下错误,这更有帮助。
error: binary operator '*' cannot be applied to operands of type 'Int' and 'CGFloat'
x + (w / 2) + (i % 4) * w
~~~~~~~ ^ ~