gpt4 book ai didi

objective-c - 缓存 NSData(使用 UIImages)

转载 作者:行者123 更新时间:2023-12-03 12:56:35 25 4
gpt4 key购买 nike

目前,我正在为该网站的客户端工作。我有大量的图像需要加载到我的 TableView。这是我目前正在做的事情:

NSDictionary *propertyItems = [self.items objectAtIndex:indexPath.row];
cell.fio.font = [UIFont boldSystemFontOfSize:17.0f];

if([propertyItems objectForKey:@"online"] == [NSNumber numberWithInt:1])
cell.fio.textColor = [UIColor colorWithRed:0.3 green:0.6 blue:0.3 alpha:1.0];

dispatch_queue_t downloadPhotosQueue = dispatch_queue_create("downloadPhotosQeue", NULL);
dispatch_async(downloadPhotosQueue, ^{
NSData *photosData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.example.com/%@", [propertyItems objectForKey:@"photo_trumb"]]]];
dispatch_async(dispatch_get_main_queue(), ^{
cell.pic.image = [UIImage imageWithData:photosData];
});

});

cell.fio.text = [propertyItems objectForKey:@"fio"];

我在 中这样做cellForRowAtIndexPath: 方法。
一切都在快速加载。但问题是,当我向下滚动我的表格时,再次向上滚动时,图像会一遍又一遍地重新加载。

问题:有什么方法可以轻松缓存我从服务器获取的 UIImages 吗?因此,如果它们被加载一次,当我运行应用程序时,它们不会一遍又一遍地重新加载。也许我做错了什么?

提前致谢!

最佳答案

我强烈推荐 AsyncImageView .我使用它,它就像一个魅力。只需设置图像 url,它就会自行处理所有内容。

AsyncImageView *imageView = [[AsyncImageView alloc]init];
imageView.imageURL = [NSURL URLWithString:@"https://www.google.es/logos/classicplus.png"];

它将图像缓存在内存中,因此它不会再次从服务器检索它。它也会在收到内存警告时释放它们。

关于objective-c - 缓存 NSData(使用 UIImages),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358269/

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