gpt4 book ai didi

ios - 如何降低从数组中选取图像的时间复杂度

转载 作者:行者123 更新时间:2023-11-29 01:29:45 24 4
gpt4 key购买 nike

这就是我的数据:

(
{
image = "https://www.myurl/abc- a/uploads/1161570652.jpg";
}
{
image = "https://www.myurl/abc- a/uploads/1161570652.jpg";
}
{
image = "https://www.myurl/abc- a/uploads/1161570652.jpg";
}
{
image = "https://www.myurl/abc- a/uploads/11615720652.jpg";
}
{
image = "https://www.myurl/abc- a/uploads/11615730652.jpg";
}
)

我可以成功取回它。但问题是它非常慢。

这是我的代码:

seeview=[[UIImageView alloc]init];

for (int k=0; k<[dictofimage count]; k++)
{
img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[image_array objectAtIndex:k]]]];
NSLog(@"image name is 0 %@",img);
[myimageview setImage:img];
}

挑选每一个元素都需要时间,而且进展缓慢。有没有更快的方法来做到这一点?

最佳答案

您无法避免循环遍历 image_array 的所有内容,因此您只能使用 O(n),但您可以使用更快的构造。 for:in 循环比典型的 C 风格循环快得多,所以像这样:

for (imageString in image_array) {
img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageString]]];
NSLog(@"image name is 0 %@",img);
[myimageview setImage:img];
}

有关基准测试的细目,请查看:http://iosdevelopertips.com/objective-c/high-performance-collection-looping-objective-c.html

编辑:我还应该注意 dataWithContentsOfURL 是一个同步调用,您可能不应该在此循环中进行调用。您最好创建一个下载图像的 NSOperation,当它完成时,您可以分派(dispatch)回主队列以在 imageView 中设置实际图像。

关于ios - 如何降低从数组中选取图像的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com