I am new to swift 3.0 , i am facing issue in one little code snippet which is throwing error when i assign @escaping closure to nil as per attached screenshot:
func delay(_ time:TimeInterval, closure: @escaping ()-> ()) -> dispatch_cancelable_closure?
{
func dispatch_later(_ clsr:@escaping ()->Void) {
DispatchQueue.main.asyncAfter(
deadline: DispatchTime.now() + Double(Int64(time * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: clsr)
}
var closure : ()->()? = closure
var cancelableClosure:dispatch_cancelable_closure?
let delayedClosure:dispatch_cancelable_closure = { cancel in
if closure != nil {
if (cancel == false) {
DispatchQueue.main.async(execute: closure as! @convention(block) () -> Void);
}
}
closure = nil
cancelableClosure = nil
}
cancelableClosure = delayedClosure
dispatch_later {
if let delayedClosure = cancelableClosure {
delayedClosure(false)
}
}
return cancelableClosure;
}
Can anyone please help me on this issue.
Thanks in advance.