¿Cómo puedo pasar los datos a una variable en swift4? [duplicar

Esta pregunta ya tiene una respuesta aquí:

how para pasar el valor variable al exterior de URLSession async - swift 3 3 respuestas Devolución de datos de una llamada asincrónica en la función Swift 10 respuestas

Necesito usar los datos de salida en otro controlador de vista pero no puedo usar, la cadena solo devuelve una cadena vacía:

func callApi(postString: String) -> (String) {
    var outputdata = String()
    var req = LogIn(postString: postString)
    let task = URLSession.shared.dataTask(with: req) { (data, response, error) in
        if let data = data{
            outputdata = String(data: data, encoding: String.Encoding.utf8)!
            //print(outputdata)


        }
    }

    print(outputdata)
    return (outputdata)
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta