Junior — Middle
NSOperation аркылуу ишке киргизилген тапшырманын аткарылышын токтотуу мүмкүнбү?
sobes.tech AI
AIден жооп
Ооба, NSOperation аркылуу ишке ашырылган тапшырманы cancel() ыкмасын чакырып токтотууга аракет кылуу мүмкүн. Бирок, маанилүү нерсе — cancel() чакырылышы ишти дароо токтотпойт; ал гана жокко чыгаруу белгисин коюу. Сиздин тапшырмаңыз isCancelled мүлкүн мезгил-мезгил менен текшерип, иш токтотулса, туура аяктоо керек.
Мисал:
class MyOperation: Operation {
override func main() {
for i in 0..<1000 {
if isCancelled {
print("Иш токтотулду")
return
}
// Тапшырманы аткаруу
print(i)
}
}
}
let operation = MyOperation()
operationQueue.addOperation(operation)
// Кийинчерээк
operation.cancel() // Ишти токтотуу аракеттери
Ошентип, токтотуу — бул кызматташтык аракет, жана иш туура үзгүлтүккө учурашы үчүн, ал белгилерди дайыма текшерип турушу керек.