【问题标题】:Is there any function like sleepWithTimeInterval() in Xcode?Xcode 中是否有类似 sleepWithTimeInterval() 的函数?
【发布时间】:2013-05-03 10:01:50
【问题描述】:

在使用Linux时,有两个简单的睡眠函数sleep()usleep()

但由于 OS X 提供了一个有用的计时器数据类型 NSTimeInterval 作为双精度,有没有像 sleepWithTimeInterval() 之类的简单函数来实现“睡眠”?

如果没有,我应该如何编写自己的函数或方法来实现,同时避免复杂的计算(例如最小化浮点数乘除法)?

谢谢!!!

【问题讨论】:

    标签: xcode macos time sleep nstimeinterval


    【解决方案1】:

    NSTimer

    具体来说,

    scheduledTimerWithTimeInterval:invocation:repeats:
    

    你也可以用 GCD 来做。

     dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, <A Number> * NSEC_PER_SEC);
     dispatch_after(popTime, dispatch_get_main_queue(), ^someblockCode);
    

    【讨论】:

    • 哦,我看了NSTimer的文档。它提到:“几秒钟后,计时器触发,调用调用。”我不明白“火”是什么意思。 NSInvocation 对我来说是新的。现在还在读...
    • 看看我提供的例子,至少在谷歌上使用它会给你很多真实世界的例子
    • 似乎如果我使用 NSTimer 或 GCD,则需要块或选择器。我应该检查我的主线程中调用 sleepWithTimeInterval() 的一些块标志变量。我说的对吗?
    • 选择器是指向方法的指针。所以简而言之,您必须将其指向您在类中创建的方法。至于主线程问题,不一定要在主线程上,只要是你想让它等待的线程,对于大多数线程来说,它就是主线程。
    • 是的,我明白你的意思。实际上我想要做的只是封装一个 sleepWithInterval(...)。但是 GCD 和 NSTimer 似乎并不是实现这一目标的简单方法。无论如何,你的建议仍然有帮助。谢谢!
    猜你喜欢
    • 2011-08-01
    • 2014-06-14
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多