2017-10-01 6 views
0

Je veux télécharger un fichier à partir d'une certaine URL. ce dont j'ai besoin est le délégué de données (le délégué qui me donne les données téléchargées). Je mis à exécution les:ios télécharger le fichier avec des blocs de données délégué

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { 
délégué

mais qu'il ne soit pas appelé.

mon code est:

func download(url: URL) 
{ 
    let sessionConfig = URLSessionConfiguration.default 
    let session = URLSession(configuration: sessionConfig, delegate: self, delegateQueue: nil) 
    let task = session.downloadTask(with: url) 


    task.resume() 
} 

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { 
    print("apending ") 
    self.dataaa.append(data) 
} 

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { 
    print("here") 
} 

les deux fonctions de délégués ne sont pas appelés!

Répondre

0

Vous utilisez les méthodes de délégation pour une tâche de données, mais vous créez une tâche de téléchargement. Ces deux types de tâches fonctionnent différemment et utilisent des méthodes de délégation complètement différentes.

+0

alors comment puis-je faire cela? – user3703910

+0

Utilisez une tâche de données (si vous souhaitez stocker les données en mémoire) ou implémentez les méthodes de délégation pour les tâches de téléchargement. https://developer.apple.com/documentation/foundation/urlsessiondownloaddelegate – dgatwood