Каква е разликата между NSURLSession
и NSOperationQueue
?
Можем ли да направим същото нещо в NSURLSession
като в NSOperationQueue
?
Всъщност и двете са за използване на фонови задачи. Така че съмнението ми: каква е разликата между тези две и какви са предимствата и недостатъците NSURLSession
и NSOperationQueue
?
Отговори:
3 за отговор № 1Докато NSOperationQueue
е опашка за произволни изчислителни цели (можете да поставите всякакъв вид работа в една от тези - например обработка на изображения) и управление на нишки, NSURLSession
предлага лесен за използване интерфейс за URL връзки (качване на данни и изтегляне на данни).
И така, с NSOperationQueue
можете да направите всичко, което можете да направите с NSURLSession
защото използването на фона опашка за стартиране на синхронна URL връзка е (освен конфигурацията отгоре, че NSURLSession
трябва да се грижи за вас) логично същото.
Но, обратното не е вярно; NSURLSession
не би било полезно за произволни мрежи (например необработен TCP) или каквито и да било не-свързани задачи.
Прекалено абстрактно всяко просто, може да искате да видите NSURLSession
като много специфична операционна опашка, която позволява само операции, свързани с URL.
2 за отговор № 2
Има много различни между тях NSURLSession
и NSOperationQueue
NSURLSession
: - това се използва за извикване на уеб услуга във фонов режим. Всички операции, свързани с обаждане от уеб услуги, могат да бъдат управлявани в NSURLSession
NSOperationQueue
: - Използва се за изпълнение на всяка задача вфон в различни нишки. Можете да изпълнявате всякакъв вид задачи във фонова нишка, освен (UI операция). В операционната опашка можете да направите зависима задача, като използвате зависимост, така че задачата да се изпълнява в някаква последователност.