gpt4 book ai didi

objective-c - MKNetworkKit - 显示缓存的图像

转载 作者:行者123 更新时间:2023-11-28 19:16:11 24 4
gpt4 key购买 nike

底部更新

为此,我从 MKNetworkKit Flickr 演示中分支出来。我想在表格中显示的网络服务器上有几张图像。我有一个 UITableViewCell 子类 ImageCell。

这里是获取远程图像的自定义方法:

-(void)setImageForCell:(NSString *)remoteFileName {

self.loadingImageURLString =
[NSString stringWithFormat:@"http://myserver.com/%@.png",remoteFileName];
self.imageLoadingOperation = [ApplicationDelegate.imageDownloader imageAtURL:[NSURL URLWithString:self.loadingImageURLString]
onCompletion:^(UIImage *fetchedImage, NSURL *url, BOOL isInCache) {

if([self.loadingImageURLString isEqualToString:[url absoluteString]]) {

if (isInCache) {
self.imageView.image = fetchedImage;
[self.contentView drawRect:self.contentView.frame];
NSLog(@"Image is in cache");
} else {
self.imageView.image = fetchedImage;
[self.contentView drawRect:self.contentView.frame];
NSLog(@"Image is not in cache");
}
}
}];
}
//TableView.h
//it is called like this
//in cellForRowAtIndexPath...
ImageCell *cell = (ImageCell *)[tableView dequeue...etc];
MyObject *obj = [dataSource objectAtIndex:indexPath.row];
cell.textLabel.text = obj.name;
[cell setImageForCell:obj.name];
return cell;

我已经检查了默认缓存目录的内容,现在里面有项目。不断滚动表格现在会打印“图像在缓存中”。问题是,单元格的 imageView 永远不会更新。 Mugunth 有一个类方法 automaticallyNotifiesObserversForKey: 但我从未在任何地方看到它的实现。我猜还涉及另一个步骤来告诉 tableView 实例用新内容更新该行。

感谢您的输入。

更新

我通过使用带有 Cell 和 UIImageView IBOutlet 的自定义 Interface Builder xib 文件来实现这一点。不确定为什么它不能与 self.imageView.image 一起使用,并且有兴趣确切地找出原因。我仍然认为这是一个悬而未决的问题,因为我只想使用标准的 UITableViewCell 类。

最佳答案

我调用 prepareForReuse。您是否将 self.imageView.image 设置为 nil?如果是,请不要这样做,因为它看起来从未重新初始化过。

关于objective-c - MKNetworkKit - 显示缓存的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925150/

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