我是Objective-C的新手,我无法弄清楚如何以非阻塞的方式等待.我有一个异步填充的对象,我需要等待它才能继续进行另一种方法.现在我正在使用sleep函数,但是这会阻止整个app并且myObject永远不会被加载.
while (!myObject)
{
sleep(1);
}
return myObject;
Run Code Online (Sandbox Code Playgroud)
编辑:此代码段来自可能在加载myObject之前调用的方法.在这种情况下,我实际上想要阻止此方法,但我的代码阻止包括myObject在内的所有内容被加载.
这个小桃子为我工作(按顺序延迟20秒)....
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 20.0, false);
Run Code Online (Sandbox Code Playgroud)
如果可以,请为类提供一个myObjectLoaded:在加载相关对象时调用的方法.否则,上面写的最常用的等价物就是创建一个定时器,它不断检查myObject并在找到它后做一些事情.
如果由于某种原因你真的需要在方法中间执行它,那么你必须创建一个继续运行runloop的循环.缺少一个导致你的应用程序阻止的runloop.
| 归档时间: |
|
| 查看次数: |
16290 次 |
| 最近记录: |