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

// 返回当前的时间值

results matching ""

    No results matching ""