如何让程序停止执行?不睡觉功能吗?如果是这样,什么是错,此代码:如何在等待图像加载时暂停程序
AsyncImageView *tmpImage = [imagesArray objectAtIndex:index];
int waitCounter = 0;
while (waitCounter < 10 && !tmpImage.imageIsLoaded) {
waitCounter++;
sleep(0.5);
}
NSLog(@"%i",waitCounter);
if (tmpImage.imageIsLoaded) {
return [tmpImage image];
} else {
return [UIImage imageNamed:@"img_noimg.png"];
}
的AsyncImageView类从URL加载的图像,然后将imageIsLoaded属性为true。这通常发生得很快(不到一秒钟),但如果我像疯子一样滚动图像,那么它没有时间加载(它提前加载10张图像)。
我已经添加了while来防止这种情况发生,但是在没有睡眠时间(界面没有冻结)的情况下,日志显示了多个waitCounter为10的情况。
相反的(只是)设置属性'imageIsLoaded'接收数据的方法可以调用的委托方法代码sniplet所属的类。然后这将相应地设置图像。滥用睡眠功能不是一个好主意。 –
使用名为“Async”的类并在Async请求完成时调用sleep ...哇!不是最好的,甚至不是好主意! 您可以阅读关于ios委托或关于通知中心的更多信息。 (我更喜欢代表) –
嗯......我宁愿不想深入了解代码,然后才需要它。我已经觉得在调试这个代码的其他部分(我正在管理一个项目,其中的代码是在2010年编写的)中跳出窗口10次... –