swift参数类型()->;()

swift参数类型()->;(),swift,types,arguments,Swift,Types,Arguments,我的问题是:如何调用此方法 func speak(text:String, onComplete:()->()) { mySpeechUtterance = AVSpeechUtterance(string: text) mySpeechSynthesizer.speakUtterance(mySpeechUtterance) onComplete() } 有很多选择。在这种情况下,最简单的是考虑到onComplete是最后一个闭包,而不是下一个闭包: spe

我的问题是:如何调用此方法

func speak(text:String, onComplete:()->()) {

    mySpeechUtterance = AVSpeechUtterance(string: text)
    mySpeechSynthesizer.speakUtterance(mySpeechUtterance)

    onComplete()
}

有很多选择。在这种情况下,最简单的是考虑到
onComplete
是最后一个闭包,而不是下一个闭包:

speechSynthesizer.speak(actions[0], onComplete: "here")
关于你问题中对函数定义的评论。应该是的

speechSynthesizer.speak(actions[0]) {
  # onComplete code goes here
}
结束

func speak(text:String, onComplete: () -> Void) {...} 
这和

speechSynthesizer.speak(actions.first) {
    // code to be executed after speaking
}
但是很明显,后面的闭包语法看起来更简洁

说明:

  • 第一部分
    ()
    的意思是“一个没有参数的函数”
  • 第二部分
    ->()
    表示“无返回值”
    speechSynthesizer.speak(actions.first, onComplete: {
        // code to be executed after speaking
    })