Junior — Middle
Πώς μπορεί να ακυρωθεί μια εργασία που βρίσκεται στη σειρά πριν ξεκινήσει;
sobes.tech AI
Απάντηση από AI
Στο iOS, για να ακυρώσετε μια εργασία που βρίσκεται στη σειρά αλλά δεν έχει ξεκινήσει ακόμα, μπορείτε να καλέσετε τη μέθοδο cancel() στο αντικείμενο εργασίας (π.χ., Operation ή URLSessionTask). Αν η εργασία δεν έχει ξεκινήσει ακόμα, θα ακυρωθεί και δεν θα εκτελεστεί.
Παράδειγμα με OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Εκτέλεση εργασίας")
}
operationQueue.addOperation(operation)
// Ακύρωση της εργασίας πριν ξεκινήσει
operation.cancel()
Αν η εργασία ήδη εκτελείται, η ακύρωση μπορεί να μην την σταματήσει αμέσως, οπότε μέσα στην εργασία πρέπει να ελέγχετε τη σημαία isCancelled και να την τερματίζετε σωστά.