【问题标题】:cannot convert value of type '()' to expected argument '() -> void'无法将“()”类型的值转换为预期的参数“() -> void”
【发布时间】:2017-08-10 02:00:52
【问题描述】:

我查看了具有相同错误的问题,但似乎无法将其与我的问题联系起来。我正在运行一个线程:

   let ballGen = BallGenerator()

    run(SKAction.repeatForever(
        SKAction.sequence([
            SKAction.run(ballGen.addBall(size.width, size.height)),
            SKAction.wait(forDuration: 0.7),

            ])
    ))

addBall()函数:

func addBall(_ screenWidth: CGFloat, _ screenHeight: CGFloat) {

    // code

}

在它运行ballGen.addBall() 的行上,它给出了错误:

无法将类型 '()' 的值转换为预期的参数 '() -> void'

这里出了什么问题?

【问题讨论】:

  • SKAction.run(_:) 函数需要 SKAction 作为参数。但是您的 addBall(_:_:) 函数不会返回 SKAction
  • 我会返回什么 SKAction?
  • 我对@9​​87654329@了解不多。这是你的实现。你最好找出你需要什么。我只是指出了错误。
  • 是的,我明白你的意思,我会弄清楚的。谢谢。

标签: ios swift


【解决方案1】:

您的 addBall 函数没有返回任何内容。你应该这样做:

func addBall(_ screenWidth: CGFloat, _ screenHeight: CGFloat) -> SKAction {

    return SKAction
}

【讨论】:

  • 无法将'SKAction'类型的值转换为预期的参数类型'() -> Void' 它也可以只使用块'SKAction.run(无效##() -> 无效#>)'。答案是错误的。
猜你喜欢
  • 2017-01-13
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2022-01-21
相关资源
最近更新 更多