检查以下示例代码
@IBAction func turnOnLightTapped(sender: AnyObject) {
turnOnLight { (turnON, error) -> Void in
if turnON {
// Turn on task - activity performed for 8 seconds
}
}
}
@IBAction func turnOffLightTapped(sender: AnyObject) {
turnOffLight { (turnOFF, error) -> Void in
if turnOFF {
// Turn off task - activity performed for 1 second
}
}
}
func turnOnLight(completion: (turnON: Bool, error: NSError?) -> Void) {
// Web call - 3 seconds
completion(turnON: true, error: nil)
}
func turnOffLight(completion: (turnOFF: Bool, error: NSError?) -> Void) {
// Web call - 3 seconds
completion(turnOFF: true, error: nil)
}
我有两个UIButton
s是相同的UIViewController
- 一个打开灯,另一个打开灯。每个动作都有自己的时间来获得响应和自己的时间来执行UIactivity
(评论)。
说,我点击TurnON button
。我需要3秒钟才能从服务中获得响应,并将数据移交给完成块。完成块将执行任务8秒。
说,在得到响应之后,即当TurnON完成关闭时,我点击TurnOFF按钮。总共在4秒内完成TurnOFF活动。但是,TurnON活动没有被取消,在几秒钟内,灯将打开,这不应该发生。
处理它的最佳方法是什么?我可以做一些黑客攻击,disable
userInteraction
,旗帜等等。但是什么是专业方式?有没有办法取消关闭任务?
我担心的是取消/停止关闭activity
,以及启动另一个activity
时。