Valor de retorno de cierres (anteriormente completadoBlock)

Me gustaría devolver algunos valores después de que se complete la operación a largo plazo. Pero además me gustaría dividir la lógica y la interfaz gráfica de usuario.

Por ejemplo; Tengo dos clases

SomeServices.swift que tiene un método llamado "getDataFromService ..."MyTableViewController.swift que mostrará el resultado de "getDataFromService"

Entonces, anteriormente en Objective-C acabo de agregar un método en SomeServices como este:

(void)getDataFromService:(void (^)(NSArray *, NSError *))completionBlock{ ...... }

En este método acabo de llamarcompletionBlock(myData, myError) para devolver mis valores al tableviewcontroller.

¿Cuál sería el cierre equivalente que tengo que definir en SomeServices.swift y cómo se llamará en MyTableViewController?

Sé cómo llamar a cierres simples como este:

   ....({
            responseData, error  in
            if(!error){
                //Do something
            }
        })

Pero no tengo ninguna idea de cómo definir un cierre con un equivalente de completeBlock.

Cualquier ayuda sería apreciada

Respuestas a la pregunta(3)

Su respuesta a la pregunta