如何在Objective-C中使用NSRunLoop?

Bir*_*chi 4 cocoa cocoa-touch objective-c nsrunloop

如何在objective-C中使用如何使用NSRunLoop并等待一些变量来改变值?

谢谢

小智 5

我们通常不会在生产中使用NSRunLoop来等待变量的变化.可以使用回调.

但是,在单元测试代码中,我们有以下内容:

NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    while (!callBackInvoked && !errorHasOccured && runCount-- &&  [[NSRunLoop currentRunLoop]  runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
        twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    }
Run Code Online (Sandbox Code Playgroud)

代码等待,直到调用我们的回调,发生错误或我们等待的2秒周期数.我们使用它来测试进行回调的代理.

正如我所说,我不会在生产代码中这样做.