相关疑难解决方法(0)

如何获得精确的时间,例如在Objective-C中以毫秒为单位?

是否有一种简单的方法可以非常精确地获得时间?

我需要计算方法调用之间的一些延迟.更具体地说,我想计算UIScrollView中滚动的速度.

iphone cocoa-touch objective-c uikit

97
推荐指数
8
解决办法
11万
查看次数

如何在0.3秒后完成给定次数的动作?

let expecation = expectationWithDescription("do tasks")
for i in 0...40 {

    let afterTiming = 0.3 * Double(i)
    let startTime = CFAbsoluteTimeGetCurrent()

    let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(afterTiming * Double(NSEC_PER_SEC)))

    dispatch_after(delayTime, dispatch_get_main_queue()) {
        let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
        print("\(afterTiming) - \(timeElapsed) : \(i)")
    }
}

waitForExpectationWithTimeout(14)
Run Code Online (Sandbox Code Playgroud)

在30执行它几乎一秒钟之后,控制台开始表现奇怪,同时显示两条和两条打印线

9.0 - 9.88806998729706 : 30
9.3 - 9.88832598924637 : 31
Run Code Online (Sandbox Code Playgroud)

有没有办法XCTest让我们更接近"在正确的时间"实际执行请求?就像在9.88秒后没有完成9秒后应该完成的请求一样.

core-foundation grand-central-dispatch swift

7
推荐指数
1
解决办法
324
查看次数