swift 多线程的使用

尝试了下Swift3.0中GCD的延时函数与以前的有挺大的不一样 - swift3.0中有4个延迟函数,以下swift

public func asyncAfter(deadline: DispatchTime, qos: DispatchQoS = default, flags: DispatchWorkItemFlags = default, execute work: @escaping @convention(block) () -> Swift.Void) public func asyncAfter(wallDeadline: DispatchWallTime, qos: DispatchQoS = default, flags: DispatchWorkItemFlags = default, execute work: @escaping @convention(block) () -> Swift.Void) public func asyncAfter(deadline: DispatchTime, execute: DispatchWorkItem) public func asyncAfter(wallDeadline: DispatchWallTime, execute: DispatchWorkItem)

通常开发中,用第三个应该就足够了,下面看看具体使用api

public func asyncAfter(deadline: DispatchTime, execute: DispatchWorkItem) // 该方法接收一个DispatchTime的参数,点进这个类型的里面能够发现实个结构体 public struct DispatchTime : Comparable { public let rawValue: dispatch_time_t public static func now() -> DispatchTime public static let distantFuture: DispatchTime public init(uptimeNanoseconds: UInt64) public var uptimeNanoseconds: UInt64 { get } } // DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2, execute: { self.tableView?.reloadData() if self.refreshControl?.isRefreshing == true { self.refreshControl?.endRefreshing() } }) DispatchTime.now() 获取当前时间, DispatchTime.now() + 2, 在当前时间的基础上加2,那就是延时两秒了
相关文章
相关标签/搜索