您将如何阻止程序执行?睡眠功能不这样做吗?如果是这样,这段代码有什么问题:
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 的情况,而没有睡眠时间(界面没有冻结)。