无法找到' init'接受提供的参数

时间:2014-06-29 22:59:37

标签: swift

这两行代码正在给我

  

无法找到' init'接受提供的参数

错误:

var w = Int(self.bounds.size.width / Float(worldSize.width))
var h = Int(self.bounds.size.height / Float(worldSize.height))

1 个答案:

答案 0 :(得分:6)

错误消息具有误导性。这应该有效:

var w = Int(self.bounds.size.width / CGFloat(worldSize.width))
var h = Int(self.bounds.size.height / CGFloat(worldSize.height))

width的{​​{1}}和height元素被声明为CGSize。 在64位平台上,CGFloatCGFloat相同且具有64位, 而Double只有32位。

所以问题是除法运算符, 这需要两个相同类型的操作数。与(Objective-)C相比,Swift从不隐式地将值转换为a 不同的类型。

如果Float也是worldSize,则您根本不需要演员:

CGSize