GCD Time
public enum DispatchTimeInterval {
case seconds(Int) // 秒
case milliseconds(Int) // 毫秒 1 * 1000 = 1 秒
case microseconds(Int) // 微秒 1 * 1000000 = 1 秒
case nanoseconds(Int) // 纳秒 1 * 1000000000 = 1 秒
}
// 运算符重载
// DispatchTime + DispatchTimeInterval
/*
let deadline = DispatchTime.now() + DispatchTimeInterval.seconds(10)
let deadline = DispatchTime.now() + DispatchTimeInterval.milliseconds(10 * 1000) // 毫秒
let deadline = DispatchTime.now() + DispatchTimeInterval.microseconds(10 * 1000000) // 微秒
let deadline = DispatchTime.now() + DispatchTimeInterval.nanoseconds(10 * 1000000000) // 纳秒
*/
public func +(time: DispatchTime, interval: DispatchTimeInterval) -> DispatchTime
// DispatchTime + seconds
// let deadline = DispatchTime.now() + 10(秒)
public func +(time: DispatchTime, seconds: Double) -> DispatchTime
public func -(time: DispatchTime, interval: DispatchTimeInterval) -> DispatchTime
public func -(time: DispatchTime, seconds: Double) -> DispatchTime
// DispatchWallTime + seconds
public func +(time: DispatchWallTime, seconds: Double) -> DispatchWallTime
// DispatchWallTime + DispatchTimeInterval
/*
let wallDeadline = DispatchWallTime.now() + DispatchTimeInterval.seconds(10)
let wallDeadline = DispatchWallTime.now() + DispatchTimeInterval.milliseconds(10 * 1000) // 毫秒
let wallDeadline = DispatchWallTime.now() + DispatchTimeInterval.microseconds(10 * 1000000) // 微秒
let wallDeadline = DispatchWallTime.now() + DispatchTimeInterval.nanoseconds(10 * 1000000000) // 纳秒
*/
public func +(time: DispatchWallTime, interval: DispatchTimeInterval) -> DispatchWallTime
public func -(time: DispatchWallTime, interval: DispatchTimeInterval) -> DispatchWallTime
public func -(time: DispatchWallTime, seconds: Double) -> DispatchWallTime
// 比较时间的大小
public func <(a: DispatchTime, b: DispatchTime) -> Bool
public func <(a: DispatchWallTime, b: DispatchWallTime) -> Bool
// 比较时间是否相等
public func ==(a: DispatchTime, b: DispatchTime) -> Bool
public func ==(a: DispatchWallTime, b: DispatchWallTime) -> Bool
DispatchTime
DispatchTime 代表了一个相对于默认时钟的一个时间点,精确到纳秒。 默认的时钟是基于 mach 绝对时间单位。
public struct DispatchTime : Comparable {
// 返回当前 DispatchTime 对象保存的时间值
public let rawValue: dispatch_time_t
// 获取当前的时间
public static func now() -> DispatchTime
// 返回一个未来的时间
public static let distantFuture: DispatchTime
// 创建一个和系统时间相关的时间
// 其实就是创建一个具体的 纳秒数 的一个 time
/// Creates a `DispatchTime` relative to the system clock that
/// ticks since boot.
///
/// - Parameters:
/// - uptimeNanoseconds: The number of nanoseconds since boot, excluding
/// time the system spent asleep
/// - Returns: A new `DispatchTime`
/// - Discussion: This clock is the same as the value returned by
/// `mach_absolute_time` when converted into nanoseconds.
public init(uptimeNanoseconds: UInt64)
// 返回从启动开始的纳秒值。不包含系统休眠的时间。
public var uptimeNanoseconds: UInt64 { get }
}
DispatchWallTime
// 根据指定的时间规范值创建一个绝对时间
init(timespec: timespec)
// 返回当前的时间值
let rawValue: dispatch_time_t
// 返回一个未来的时间值
static let distantFuture: DispatchWallTime
// 返回当前的时间值