gpt4 book ai didi

swift - 找不到接受提供的参数的 'init' 的重载

转载 作者:行者123 更新时间:2023-11-28 09:47:01 24 4
gpt4 key购买 nike

这两行代码给了我

Could not find an overload for 'init' that accepts the supplied arguments

错误:

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

最佳答案

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

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

CGSizewidthheight 元素声明为CGFloat。在 64 位平台上,CGFloatDouble 相同,具有 64 位,而 Float 只有 32 位。

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

如果 worldSize 也是一个 CGSize 那么您根本不需要转换:

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

关于swift - 找不到接受提供的参数的 'init' 的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24481011/

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