Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何正确停止nsrunlop?_Iphone_Objective C_Nsrunloop - Fatal编程技术网

Iphone 如何正确停止nsrunlop?

Iphone 如何正确停止nsrunlop?,iphone,objective-c,nsrunloop,Iphone,Objective C,Nsrunloop,我正在应用程序中使用nsrunlop。就一句话 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]]; 在for循环中执行。需要每两秒钟更新一次特定文本,持续三次。一切正常,但当我退出它运行的屏幕时(以及当它运行时,这是最重要的),然后再次进入屏幕,然后再次退出时,我的应用程序崩溃。如果在NSRunLoop运行时退出,我想我必须停止运行它,但我不知道如何做到这一点。你能给我一些建议吗

我正在应用程序中使用nsrunlop。就一句话

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]]; 
在for循环中执行。需要每两秒钟更新一次特定文本,持续三次。一切正常,但当我退出它运行的屏幕时(以及当它运行时,这是最重要的),然后再次进入屏幕,然后再次退出时,我的应用程序崩溃。如果在NSRunLoop运行时退出,我想我必须停止运行它,但我不知道如何做到这一点。你能给我一些建议吗

这是我的循环:

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;
}

for(inti=1;i感谢您修改您的问题以包含一些源代码

我建议不要做你一直在做的
runUntilDate
事情,而是作为一个分离的线程来做()


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

安德烈,您可能应该显示更多的代码。例如,您是否创建了一个新的运行循环?您可以显示吗(以及涉及更新的元素?UILabel还是?)。