Plu*_*Boy 4 asynchronous ios swift
我正在开发一个应用程序,每页有5个动画.单击它们时会启动每个动画.如果没有按任何图像,在5秒内协助用户,援助被释放.对于每个动画重复此操作,如果单击动画1,当动画结束时,它会将计数器返回5秒,但在任何动画中按下这5秒钟时,计数器应该被取消.我可以管理吗?直到现在用dispatch_after而不是如何取消
如果您希望您的操作可以取消,一种简单的方法是使用NSBlockOperation.
let operation = NSBlockOperation()
operation.addExecutionBlock { () -> Void in
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(5 * NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue(), { () -> Void in
if operation.cancelled {
return
} else {
// perform your animation
}
})
}
Run Code Online (Sandbox Code Playgroud)
要开始你的操作:
operation.start()
Run Code Online (Sandbox Code Playgroud)
如果您想取消您的操作:
operation.cancel()
Run Code Online (Sandbox Code Playgroud)
如果你的操作有很多阶段,你应该定期检查operation.cancelled- cancel()除了设置之外,调用本身没有任何作用true.
对于更复杂的工作,您可以将多个操作链接在一个依赖项中并将它们放在一个NSOperationQueue.
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |