Connessioni internet con NSURLSession

Nell’apprendimento che sto avendo giorno dopo giorno con iOS oggi mi sono dovuto imbattere sulle problematiche relative alle connessioni remote con un server.

Questa serie di articoli che pubblicherò man mano che mi imbatterò in qualcosa da ricordare, mi servirà come promemoria e ricerca di snippets vari da cui prendere spunto per sviluppi piu’ complessi. A volte il codice non sarà molto commentato perchè ripeto, lo scopo principale di questa serie non è quello di fare “diffusione” ma di utilizzare questi post come miei promemoria che posso andare a ripescare al bisogno.

Da iOS 7+ Apple consiglia l’uso della nuova classe NSURLSession che ha in sè tutto il necessario per effettuare connessioni remote. L’esempio sotto permette di configurare una connessione ed effettuare un task di download di una immagine da internet:

// CONFIGURAZIONE SESSIONE
// PASSO 1
NSString *imageURL = [dictionary valueForKey:@"image_user"];
 
// PASSO 2
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.allowsCellularAccess = YES;
sessionConfig.timeoutIntervalForRequest = 30.0;
sessionConfig.timeoutIntervalForResource = 60.0;
 
// PASSO 3
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
///////////////////////
 
// INIZIO SESSIONE
// 1
NSURLSessionDownloadTask *getImageTask = [session downloadTaskWithURL:[NSURL URLWithString:imageURL] completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
 
// 2
UIImage *downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]];
 
// 3
dispatch_async(dispatch_get_main_queue(), ^{
self.profileUser.image = downloadedImage;
});
 
}];
 
// PASSO 4 EFFETTUO IL TASK
[getImageTask resume];
 
//// *************************

 

3 thoughts on “Connessioni internet con NSURLSession

  1. E invece come mai non usi direttamente Swift? Non penso ci siano molti post in italiano su Swift. Anche i programmatori con molti anni di esperienza iOS lo troverebbero interessante.

  2. Grazie Peppe per i commenti 😉 per quanto riguarda AFNetworking è un gran el framework che semplifica molti passaggi ma in questo caso ho voluto usare NSURLSESSION per due motivi principali: per rimanere indipendente da framework esterni all’sdk e per fare la conoscenza del metodo suggerito da Apple. In casi più complessi sicuramente sparerò il cannone con AFNetworking 😉 Riguardo Swift entro l’anno Apple (che va da settembre a settembre ;D ) conto di iniziare a fargli delle visite quanto prima e quindi ne scriverò di riflesso anche qui, grazie! 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.