Qual è la differenza tra NSURLSession
e NSOperationQueue
?
Possiamo fare la stessa cosa dentro NSURLSession
come in NSOperationQueue
?
In realtà entrambi sono per l'utilizzo di attività in background. Quindi il mio dubbio: qual è la differenza tra questi due e quali sono i vantaggi e gli svantaggi NSURLSession
e NSOperationQueue
?
risposte:
3 per risposta № 1Mentre NSOperationQueue
è una coda per scopi informatici arbitrari (puoi inserire qualsiasi tipo di lavoro in uno di questi, ad esempio l'elaborazione delle immagini) e la gestione dei thread, NSURLSession
offre un'interfaccia facile da usare per le connessioni URL (caricamento di dati e download di dati).
Quindi, con un NSOperationQueue
puoi fare tutto quello che puoi fare con un NSURLSession
perché l'utilizzo di una coda in background per avviare una connessione URL sincrona è (a parte il sovraccarico di configurazione che NSURLSession
dovrebbe prendersi cura di te) logicamente lo stesso.
Ma non è vero il contrario; NSURLSession
non sarebbe utile per reti arbitrarie (ad esempio TCP non elaborate) o attività non connesse alla rete.
Estrarre eccessivamente qualsiasi semplice, potresti voler vedere NSURLSession
come una coda operazioni molto specifica, che consente solo operazioni relative all'URL.
2 per risposta № 2
Ci sono molte differenze tra NSURLSession
e NSOperationQueue
NSURLSession
: - viene utilizzato per chiamare il servizio Web in background. Tutte le operazioni relative alla chiamata al servizio web possono essere gestite nella sessione NSURL
NSOperationQueue
: - Viene utilizzato per eseguire qualsiasi attività insfondo in thread diversi. È possibile eseguire qualsiasi tipo di attività nel thread in background tranne (operazione UI). Nella coda operazioni è possibile rendere l'attività dipendente usando la dipendenza in modo che l'attività venga eseguita in una sequenza.