首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确停止NSRunLoop?

如何正确停止NSRunLoop?
EN

Stack Overflow用户
提问于 2011-11-26 19:48:09
回答 1查看 1.3K关注 0票数 0

我在我的应用程序中使用NSRunLoop。只有一句话

代码语言:javascript
复制
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]]; 

在for循环中执行。需要每两秒更新一次特定文本三次。一切都很好,但当我退出它运行的屏幕(当它运行时,这是最重要的),然后再次进入屏幕,然后再次退出,我的应用程序就崩溃了。我假设如果我在NSRunLoop运行时退出,我将不得不停止运行它,但我不知道如何做到这一点。你能给我一些建议吗?

这是我的循环:

代码语言:javascript
复制
for (int i = 1;i <= 3;i++)
{
    int result = [self analyzeCards];

   ((UILabel *)[bidLabels objectAtIndex:i]).text = [bidResults objectAtIndex:result];


    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]]; 

    bidIndexes [i - 1] = result;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-26 20:18:35

感谢您将您的问题修改为包含一些源代码。

我建议不要做你一直在做的runUntilDate的事情,而是作为一个分离的线程(making sure to actually do the updating the labels -- the user interface -- on the main thread)来做。

崩溃本身很可能是因为您的bidLabels数组中的对象已过时或已释放,或者只是垃圾。每次重新打开窗口时重置该数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8278190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档