functions and swift completionhandler

and - swift completion functions



FunciĆ³n con bloque de finalizaciĆ³n opcional en Swift (2)

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) { }