Pérdida de memoria cuando se usa NSURLSession.downloadTaskWithURL

Así que llegué a otro obstáculo en mis esfuerzos con Swift. Estoy tratando de cargar varias imágenes en una galería de imágenes, todo funciona bien, excepto por una cosa. El uso de la memoria de la aplicación sigue creciendo y creciendo a pesar del hecho de que borro las imágenes. Después de eliminar básicamente todo el código, descubrí que esto es causado por mi script de carga de imágenes:

func loadImageWithIndex(index: Int) {
    let imageURL = promotions[index].imageURL
    let url = NSURL(string: imageURL)!
    let urlSession = NSURLSession.sharedSession()
    let query = urlSession.downloadTaskWithURL(url, completionHandler: { location, response, error -> Void in

    })
    query.resume()
}

Como puede ver, este código básicamente no hace nada en este momento. Sin embargo, cada vez que lo llamo, el uso de memoria de mis aplicaciones crece. Si comento la consulta, el uso de la memoria no está cambiando.

He leído varios problemas similares, pero todos involucraron el uso de un delegado. Bueno, en este caso no hay delegado, pero hay un problema de memoria. ¿Alguien sabe cómo eliminarlo y qué lo está causando?

EDITAR: Aquí hay una clase de prueba completa. Parece que la memoria solo crece cuando la imagen se puede cargar, como si los punteros a la imagen se mantuvieran en la memoria para siempre. Cuando no se encuentra la imagen, no sucede nada, el uso de memoria permanece bajo. ¿Quizás alguna pista sobre cómo limpiar esos punteros?

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        //memory usage: approx. 23MB with 1 load according to the debug navigator
        //loadImage()

        //memory usage approx 130MB with the cycle below according to the debug navigator
        for i in 1...50 {
            loadImage()
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func loadImage() {
        let imageURL = "http://mama-beach.com/mama2/wp-content/uploads/2013/07/photodune-4088822-beauty-beach-and-limestone-rocks-l.jpg" //random image from the internet
        let url = NSURL(string: imageURL)!
        let urlSession = NSURLSession.sharedSession()
        let query = urlSession.downloadTaskWithURL(url, completionHandler: { location, response, error -> Void in
            //there is nothing in here
        })
        query.resume()
    }
}

Lo siento, todavía no tengo idea de cómo usar el generador de perfiles (siendo muy novato en todo este jazz de iOS), al menos adjuntaré una captura de pantalla del generador de perfiles producida por el código anterior:

Respuestas a la pregunta(4)

Su respuesta a la pregunta