La descarga de JSON con NSURLSession no devuelve ningún dato

Actualmente estoy tratando de descargar, analizar e imprimir JSON desde una URL. Hasta ahora llegué a este punto:

1) Una clase (JSONImport.swift), que maneja mi importación:

    var data = NSMutableData();
        let url = NSURL(string:"http://headers.jsontest.com");
        var session = NSURLSession.sharedSession();
        var jsonError:NSError?;
        var response : NSURLResponse?;

        func startConnection(){

            let task:NSURLSessionDataTask = session.dataTaskWithURL(url!, completionHandler:apiHandler)
            task.resume();

            self.apiHandler(data,response: response,error: jsonError);

        }

        func apiHandler(data:NSData?, response:NSURLResponse?, error:NSError?)
        {
            do{
                let jsonData : NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary;
                print(jsonData);
            }
            catch{
                print("API error: \(error)");
            }
        }

Miproblema es que los datos en

do{
            let jsonData : NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary;
            print(jsonData);
        }

permanece vacío Cuando depuro, la conexión se inicia con éxito, con la URL dada como parámetro. Pero mi variable jsonData no se imprime. En cambio, el bloque catch arroja el error, indicando que no hay datos en mi variable:

API error: Error Domain=NSCocoaErrorDomain Code=3840 "No value."

¿Puede alguien ayudarme con esto? ¿Qué me estoy perdiendo?

Muchas gracias a todos de antemano!

[Editado después de cambiar de NSURL Connection a NSURLSession]

Respuestas a la pregunta(1)

Su respuesta a la pregunta