and - swift completion functions
FunciĆ³n con bloque de finalizaciĆ³n opcional en Swift (2)
Esta pregunta ya tiene una respuesta aquí:
Cuando creo una función, puedo hacer que un parámetro sea opcional dándole un valor predeterminado, como este:
func foo(bar: String = "foobar") {}
Quiero hacer lo mismo (hacerlo opcional) con un bloque de finalización. He probado lo siguiente:
func foo(completionBlock: (foo: String) -> () = () -> ())
func foo(completionBlock: (foo: String) -> () = (foo: String) -> ())
func foo(completionBlock: (foo: String) -> () = ((foo: String) -> ()))
func foo(completionBlock: (foo: String) -> () = ((foo: String) in))
func foo(completionBlock: (foo: String) -> () = {(foo: String) in})
¿Cómo puedo hacer esto?
EDITAR:
Esta es / fue una pregunta duplicada, lo siento por eso. Sin embargo, no pude encontrar la solución en la pregunta original. Así que la respuesta de Nathan es la mejor.
En Swift 3:
func foo(completionBlock: (String) -> () = { _ in }) {}
Si desea por defecto nil
:
func foo(completionBlock: ((String) -> ())? = nil) {
}
Si desea proporcionar un bloque de finalización predeterminado:
func defaultCompletionBlock(foo: String) {
}
func foo(completionBlock: ((String) -> ()) = defaultCompletionBlock) {
}