¿Cómo debe manejar los argumentos de cierre para UIAlertAction?

He estado tratando de crear unUIAlertAtion que también tiene un controlador. Leo las respuestas deesta pregunta y saber cómo hacerlo.

Mi pregunta es solo sobre la parte de cierre de la misma.

1) Sé que puedo escribir:{alert in println("Foo")} O{_ in println("Foo")} pero yohipocresía escribir{println("Foo")}. En los comentariosaquí se explica porquenecesitas manejar la acción del argumento.

¿Esto significa que dado que el controlador es de tipo(UIAlertAction) -> Void)? Siempre debo capturar la alerta pasada ¿Acción?

2) Yo tambien leoesta y la respuesta es básicamente decir que puedes pasar una función como argumento, pero la función debería tomar algo de tipoUIAlertAction -> Void, que escribí:

private func anything(action : UIAlertAction) {
    print("hello")
}

y luego escribí mi alertaction como tal:

let anotherAction = UIAlertAction(title: "hi", style: UIAlertActionStyle.Default,
 handler: anything(action)) // error: Use of unresolved identifier 'action'

confundido por qué me sale ese error

3) En los comentarios también decía:Pero además de eso, no tiene que escribir UIAlertActionStyle.Default en swift. . Por defecto también funciona

Traté de escribir sin usar el estilo, por lo que sería predeterminado.Default

let sendLogAction = UIAlertAction(title: "Log") { action in print("goodbye")}

Pero luego aparece el siguiente error:

'(título: Cadena, (_) -> ())' (también conocido como '(título: Cadena, _ -> ())') no es convertible a '(título: Cadena ?, estilo: UIAlertActionStyle, controlador: (( UIAlertAction) -> Void)?) '(También conocido como' (título: Opcional, estilo: UIAlertActionStyle, controlador: Opcional ()>) '), las tuplas tienen un número diferente de elementos

4) También leyendoesta responder. No entiendo por qué necesitamos pasaralert no tiene sentido. No es que no sepamos cuál es el tipo de alerta ... ¡¿No hemos definido ya su tipo? !! ¿Alguien puede explicar dónde pasar la acción en sí sería útil en general, es decir, qué podríamos hacer con él?

Sé que esto se escribe como 4 preguntas, pero creo que en realidad es solo una pregunta fundamental. Tengo extensamenteleer, usé controladores de cierre / finalización en un proyecto en el que estoy trabajando y jugué en el patio de recreo, pero aún estoy confundido.

Respuestas a la pregunta(3)

Su respuesta a la pregunta