如何使用如何在objective-C中使用NSRunLoop并等待一些变量改变值?
谢谢
我们通常不会在生产环境中使用 NSRunLoop 来等待变量更改。可以使用回调。
但是,在单元测试代码中,我们确实有以下内容:
NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
while (!callBackInvoked && !errorHasOccured && runCount-- && [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
}
代码一直等待,直到调用我们的回调、发生错误或我们等待的 2 秒周期数已经发生。我们使用它来测试进行回调的委托。
正如我所说,我不会在生产代码中这样做。
您通常不会NSRunLoop
直接在代码中使用。
例如,您将创建GUI
已包含NSRunLoop
在其中的应用程序(使用预定义的应用程序代码模板Xcode
)。
这取决于应该更改的变量,您可能将它放在“模型”对象中的某个位置,并且它会被一些甚至像在线到达的数据或链接到 GUI 对象和用户执行的操作的数据所更改。
依此类推,Cocoa
将为您处理胶水代码,您只需要设置适当的处理即可执行操作。
您的问题中没有足够的详细信息,我建议您查看Apple 网站上的一些基本教程,以便开发人员了解 Cocoa 中可用的内容。