zoukankan      html  css  js  c++  java
  • swift dispatch_after

    typealias Task = (cancel : Bool) -> ()
        func delay(time:NSTimeInterval, task:()->()) ->  Task? {
            func dispatch_later(block:()->()) {
                dispatch_after(
                    dispatch_time(
                        DISPATCH_TIME_NOW,
                        Int64(time * Double(NSEC_PER_SEC))),
                    dispatch_get_main_queue(),
                    block)
            }
            var closure: dispatch_block_t? = task
            var result: Task?
            let delayedClosure: Task = {
                cancel in
                if let internalClosure = closure {
                    if (cancel == false) {
                        dispatch_async(dispatch_get_main_queue(), internalClosure);
                    }
                }
                closure = nil
                result = nil
            }
            result = delayedClosure
            dispatch_later {
                if let delayedClosure = result {
                    delayedClosure(cancel: false)
                }
            }
            return result;
        }
        func cancel(task:Task?) {
            task?(cancel: true)
        }
  • 相关阅读:
    搜索框的创建
    自定义非等高 Cell
    自定义等高 Cell
    表格多选删除
    聊天布局
    表格编辑
    表格折叠
    tableView 的协议方法
    UITouch
    UIDevice
  • 原文地址:https://www.cnblogs.com/newBlash/p/5493186.html
Copyright © 2011-2022 走看看