Jaka jest różnica pomiędzy NSURLSession
i NSOperationQueue
?
Czy możemy zrobić to samo? NSURLSession
jak w NSOperationQueue
?
W rzeczywistości oba służą do korzystania z zadań w tle. Więc mam wątpliwości: jaka jest różnica między tymi dwoma i jakie są zalety i wady NSURLSession
i NSOperationQueue
?
Odpowiedzi:
3 dla odpowiedzi № 1Podczas NSOperationQueue
to kolejka do dowolnych celów obliczeniowych (możesz włożyć dowolną pracę do jednego z nich - na przykład przetwarzanie obrazu) i zarządzanie wątkami, NSURLSession
oferuje łatwy w obsłudze interfejs do połączeń URL (przesyłanie danych i pobieranie danych).
Więc z NSOperationQueue
możesz zrobić wszystko, co możesz zrobić z NSURLSession
ponieważ użycie kolejki w tle do uruchomienia synchronicznego połączenia URL jest (oprócz narzutu konfiguracyjnego, że NSURLSession
ma się o ciebie troszczyć) logicznie to samo.
Ale odwrotność nie jest prawdą; NSURLSession
nie byłby użyteczny w przypadku dowolnych sieci (na przykład surowego protokołu TCP) ani żadnych zadań niezwiązanych z siecią.
Zbyt abstrakcyjne wszelkie uproszczone, które możesz chcieć zobaczyć NSURLSession
jako bardzo specyficzna kolejka operacji, która pozwala tylko na operacje związane z adresami URL.
2 dla odpowiedzi nr 2
Istnieje wiele różnych pomiędzy NSURLSession
i NSOperationQueue
NSURLSession
: - służy do wywoływania usługi internetowej w tle. Wszystkimi operacjami związanymi z wywołaniem usługi WWW można zarządzać w sesji NSURL
NSOperationQueue
: - Służy do wykonywania dowolnego zadania wtło w innym wątku. Możesz wykonać dowolne zadanie w wątku w tle oprócz (interfejs użytkownika). W kolejce operacji można wykonać zależne zadanie za pomocą zależności, aby zadanie było wykonywane w określonej kolejności.