Sobes.tech
Junior — Middle

Πώς μπορεί να ακυρωθεί μια εργασία που βρίσκεται στη σειρά πριν ξεκινήσει;

sobes.tech AI

Απάντηση από AI

Στο iOS, για να ακυρώσετε μια εργασία που βρίσκεται στη σειρά αλλά δεν έχει ξεκινήσει ακόμα, μπορείτε να καλέσετε τη μέθοδο cancel() στο αντικείμενο εργασίας (π.χ., Operation ή URLSessionTask). Αν η εργασία δεν έχει ξεκινήσει ακόμα, θα ακυρωθεί και δεν θα εκτελεστεί.

Παράδειγμα με OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Εκτέλεση εργασίας")
}
operationQueue.addOperation(operation)

// Ακύρωση της εργασίας πριν ξεκινήσει
operation.cancel()

Αν η εργασία ήδη εκτελείται, η ακύρωση μπορεί να μην την σταματήσει αμέσως, οπότε μέσα στην εργασία πρέπει να ελέγχετε τη σημαία isCancelled και να την τερματίζετε σωστά.