如何使用以下完成处理程序调用函数?

Lou*_*ost 1 ios swift

如何调用具有以下签名的函数?

func purchaseSubscription(productId: String, completion:  @escaping  (Bool, String, String) -> Void) {
Run Code Online (Sandbox Code Playgroud)

是吗

InAppHandler.purchaseSubscription("test") {
     processPurchase()
}
Run Code Online (Sandbox Code Playgroud)

PGD*_*Dev 8

可以有多种形式来调用该方法。

1.定义调用时的参数closure,ue

InAppHandler.purchaseSubscription(productId: "test") {(x, y, z) in
    print(x, y, z)
    processPurchase()
}
Run Code Online (Sandbox Code Playgroud)

2.调用while中$0, $1的参数可以使用简写形式(等)closure,即

InAppHandler.purchaseSubscription(productId: "test") {
    print($0, $1, $2)
    processPurchase()
}
Run Code Online (Sandbox Code Playgroud)

上面2个是一样的。只是在第一个中你给出了参数名称,在第二个中你使用了这些参数的简写。

3.如果你没有使用你在 中得到的任何参数,closure用下划线( _) 像这样标记它们,

InAppHandler.purchaseSubscription(productId: "test") {(_, _, _) in
    processPurchase()
}
Run Code Online (Sandbox Code Playgroud)

您可以根据需要使用任何其他形式。