Swift 无法转换类型为';CFTimeInterval.Type';至';CFTimeInterval';?
我正在阅读一本关于Swift的书中的一个编程示例,其中有一个场景的初始值设定项,如下所示:Swift 无法转换类型为';CFTimeInterval.Type';至';CFTimeInterval';?,swift,initialization,Swift,Initialization,我正在阅读一本关于Swift的书中的一个编程示例,其中有一个场景的初始值设定项,如下所示: class GameOverScene: SKScene { init(size:CGSize,won:Bool,time:CFTimeInterval) { ........... } } 然后在程序的另一部分中使用以下行调用此初始值设定项: let gameOverScene=GameOverScene(size:self.size,won:true,time:
class GameOverScene: SKScene
{
init(size:CGSize,won:Bool,time:CFTimeInterval)
{
...........
}
}
然后在程序的另一部分中使用以下行调用此初始值设定项:
let gameOverScene=GameOverScene(size:self.size,won:true,time:CFTimeInterval)
看起来这应该很简单,但我得到了一个奇怪的错误,它说:
无法转换类型为“CFTimeInterval.type”(也称为“Double.type”)的值
到预期的参数类型“CFTimeInterval”(也称为“Double”)
有人知道(1)此错误的含义和(2)如何更正它吗?
CFTimeInterval
是一种类型。它不是可以传递给该函数的CFTimeInterval
的实例
CFTimeInterval
是一个typealias
到Double
。因此,此函数需要类型为Double
的值1.0
,NaN
,-1.5
,Double.pi
都是Double
的有效实例。但是您试图给出的是CFTimeInterval
,它引用了类型本身
例如,这将起作用:
let gameOverScene = GameOverScene(size: self.size, won: true, time: 1.23)
CFTimeInterval
是一种类型。它不是可以传递给该函数的CFTimeInterval
的实例
CFTimeInterval
是一个typealias
到Double
。因此,此函数需要类型为Double
的值1.0
,NaN
,-1.5
,Double.pi
都是Double
的有效实例。但是您试图给出的是CFTimeInterval
,它引用了类型本身
例如,这将起作用:
let gameOverScene = GameOverScene(size: self.size, won: true, time: 1.23)
此初始值设定项中的
time
参数的含义是什么?@Alexander-“time”参数只是一个CFTimeInterval变量,用于描述游戏结束时游戏所用的时间量。此初始值设定项中的time
参数的含义是什么?@Alexander-“time”参数的含义是什么只是一个CFTimeInterval变量,用于描述游戏结束时游戏所用的时间量。谢谢。我觉得自己像个白痴。我试图将'CFTimeInterval'类型本身作为参数传递,而没有意识到调用的是一个'CFTimeInterval'类型的项。我混淆了用于声明init的语法和用于调用init的语法。不用担心。但请在代码中加一些空格。或者,它只是读了这篇文章,但这并不意味着你愿意与之合作。@SamuelWeir顺便说一句,你使用的是旧版本的Swift吗?在这种情况下,现代Swift会给您一个错误,提醒您要么使用CFTimeInterval()
调用某个初始值设定项,要么使用显式写入CFTimeInterval.self
引用该类型。我试图使Xcode和Swift始终更新到最新版本,但我会检查这一点。谢谢,谢谢。我觉得自己像个白痴。我试图将'CFTimeInterval'类型本身作为参数传递,而没有意识到调用的是一个'CFTimeInterval'类型的项。我混淆了用于声明init的语法和用于调用init的语法。不用担心。但请在代码中加一些空格。或者,它只是读了这篇文章,但这并不意味着你愿意与之合作。@SamuelWeir顺便说一句,你使用的是旧版本的Swift吗?在这种情况下,现代Swift会给您一个错误,提醒您要么使用CFTimeInterval()
调用某个初始值设定项,要么使用显式写入CFTimeInterval.self
引用该类型。我试图使Xcode和Swift始终更新到最新版本,但我会检查这一点。谢谢