Objective c 使用NSMutableDictionary缓存图像
我正在尝试创建一个应用程序,它可以从网络上浏览各种图像,并将它们缓存到iPhone上以供脱机使用。我目前使用的代码是:Objective c 使用NSMutableDictionary缓存图像,objective-c,Objective C,我正在尝试创建一个应用程序,它可以从网络上浏览各种图像,并将它们缓存到iPhone上以供脱机使用。我目前使用的代码是: NSMutableDictionary *Cache; - (UIImage *)CachedImage: (NSString*)url { UIImage *image = [Cache objectForKey:url]; if (image == nil) { image = [UIImage imageWithData:[NSData dataWithC
NSMutableDictionary *Cache;
- (UIImage *)CachedImage: (NSString*)url {
UIImage *image = [Cache objectForKey:url];
if (image == nil) {
image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]];
[Cache setObject:image forKey:url];
//NSLog (@"Stored");
return image;
} else {
//NSLog (@"Taken");
return image;
} }
我调用函数并使用下面的代码条将图像放入ImageView中
[self.imageView setImage:[self CachedImage:url]]; // Change url to desired URL.
使用NSLog,我发现的问题是代码实际上没有存储该值,因为该值总是读取nil。为什么会这样?还有其他存储图像以供脱机使用的方法吗?
提前谢谢
-Gon您正在寻找的
恩斯卡
在这里查看:
可怜的NSCache,总是被NSMutableDictionary在
最不恰当的情况。好像没人知道它在那里,
准备好提供所有垃圾收集行为了吗
开发人员煞费苦心地重新实现自己
使用NSCache缓存UIImage。您还可以在本地保存图像(如果您在多次启动过程中多次重复使用这些图像),这样每当您的应用程序关闭或刷新缓存时,您都可以立即从本地目录获取图像