Junior — Middle
U kojim slučajevima i u kojim sistemima je implementirano otkazivanje zadataka?
sobes.tech АИ
Одговор од АИ
Otkaivanje zadataka implementirano je u sistemima gde je važno imati mogućnost da se prekinu dugi ili nepotrebni operacije kako bi se oslobodili resursi i poboljšala odzivnost aplikacije. U iOS-u se to često nalazi u:
- URLSessionTasks — može se otkazati mrežni zahtev ako više nije potreban.
- OperationQueue i Operation — operacije se mogu otkazati putem metode
cancel(), što omogućava zaustavljanje izvršenja zadatka ako još nije završen. - DispatchWorkItem — može se otkazati odloženo ili asinhrono izvršavanje koda.
Otkazivanje je korisno, na primer, prilikom učitavanja podataka za ćeliju tabele koja je skrolovana izvan vidljivog područja, ili prilikom otkazivanja mrežnog zahteva pri zatvaranju ekrana.
Primer otkazivanja operacije:
let operation = BlockOperation {
// Dugačak zadatak
}
operationQueue.addOperation(operation)
// Kasnije
operation.cancel()