`

NSCache

 
阅读更多
http://thenewself.blog.163.com/blog/static/198501330201251311025928/
http://www.cnblogs.com/zhuqil/archive/2011/07/30/2122127.html

http://yinghuayuan8866.blog.163.com/blog/static/2245702720122292279677/

// Your cache should have a lifetime beyond the method or handful of methods
// that use it. For example, you could make it a field of your application
// delegate, or of your view controller, or something like that. Up to you.
NSCache *myCache = ...;
NSAssert(myCache != nil, @"cache object is missing");

// Try to get the existing object out of the cache, if it's there.
Widget *myWidget = [myCache objectForKey: @"Important Widget"];
if (myWidget == nil) 
{
    // It's not in the cache yet, or has been removed. We have to
    // create it. Presumably, creation is an expensive operation,
    // which is why we cache the results. If creation is cheap, we
    // probably don't need to bother caching it. That's a design
    // decision you'll have to make yourself.
    myWidget = [[[Widget alloc] initExpensively] autorelease];

    // Put it in the cache. It will stay there as long as the OS
    // has room for it. It may be removed at any time, however,
    // at which point we'll have to create it again on next use.
    [myCache setObject: myWidget forKey: @"Important Widget"];
}

// myWidget should exist now either way. Use it here.
if (myWidget) {
    [myWidget runOrWhatever];
}
分享到:
评论

相关推荐

    swift内存缓存NSCache和沙盒磁盘缓存使用教程和demo下载

    Swift中的`NSCache`和沙盒中的磁盘缓存是两种常用的缓存策略,它们能够有效地提升用户体验,减少网络请求,降低服务器压力。本教程将深入探讨这两种缓存机制的使用,并提供一个包含实例代码的Demo下载。 ### 一、...

    ECDataCache:由 NSCache 支持的用于内存数据的通用 NSData 缓存

    用于将数据存储到磁盘的通用 NSData 缓存,由 NSCache 支持用于内存数据。 用法 只需在顶部的某处包含标题: # import " ECDataCache.h " 然后在您的代码中使用它,如下所示: NSData *someData = [ECDataCache....

    NScache-开源

    **NSCache 开源项目详解** `NSCache` 是一个开源项目,主要针对Netscape(tm)浏览器的缓存管理工具。它采用 GTK+ 图形用户界面库来提供直观的操作体验,帮助用户管理和查看浏览器缓存中的文件。通过这个工具,用户...

    OPCache:NSCache + 疯狂的酷

    对NSCache一些添加使其更有用。 ##URL 图像获取 OPCache有一系列方法来方便加载外部图像、处理它们(即调整大小、裁剪等),并将它们填充到内存和/或磁盘缓存中。 图像的处理是通过在后台队列上运行的可选块完成的...

    WellCached:一个 NSCache 子类,提供键控下标、基于时间的到期和用于缓存异步数据的类似 Rails 的“获取”API

    WellCached 是一个 NSCache 子类,它提供键控下标、基于时间的键过期和一个类似于 Rails 的fetch API,它可以处理来自异步源的数据。 用法 WellCached包括单个类ELAWellCached可以精确地使用像NSCache : ...

    CacheModel 类文件

    `CacheModel` 是一个专门用于数据缓存的类,它结合了`NSCache`和iOS沙盒中的`NSFile`管理,以实现高效且不影响应用程序前台运行的数据存储与读取。在iOS应用开发中,合理地使用缓存能够显著提升用户体验,减少网络...

    AKLruDictionary:LRU(最近最少使用)内存缓存数据结构,具有与 NSCache 类似的 API

    LRU(最近最少使用)内存缓存数据结构,具有与 NSCache 类似的 API 用法 // Create cache for UIImage objects with total max size of 2 MB, objects exceeding size of 150 KB will be ignored self.cache = [...

    imageCache

    此外,改用NSCache还简化了缓存管理的代码逻辑,因为NSCache提供了更智能的缓存策略,开发者无需手动处理内存警告和缓存清理等复杂操作。 在实际开发中,"imageCache"可能包含以下关键功能: 1. **图片下载**:...

    telescope:面向SwiftUI的远程图像缓存系统

    这个库利用了两种缓存机制:内存中的NSCache和本地文件系统,确保图片数据在需要时能够快速获取。 SwiftUI是Apple推出的一种声明式用户界面框架,它简化了iOS、macOS、watchOS和tvOS等平台的UI开发。然而,原生...

    OC清除缓存Demo

    内存缓存(如NSCache)在应用运行时存储数据,可以快速访问但会在应用退出时丢失。磁盘缓存(如SQLite数据库、Plist文件或自定义文件结构)则持久化存储,即使应用关闭也能再次访问。 在Objective-C中,清理内存...

    ios类库以及foundation框架

    7. NSCache类:NSCache类提供了一个用于缓存对象的线程安全的数据结构,特别适合那些需要内存管理而又容易被自动释放的对象。NSCache允许开发者设置对象缓存的限制,包括最大对象数或最大成本(对象占用的内存大小)...

    ios-iOS离线缓存.zip

    1. **NSCache**: NSCache是内存中的缓存,用于临时存储对象,但当系统内存紧张时,它会自动清空。在离线缓存场景下,由于内存有限,可能不适合存储大量数据。 2. **UserDefaults**: UserDefaults适合存储轻量级的...

    CacheDataTest Demo 缓存

    内存缓存通常使用NSCache类,它是一个轻量级的对象缓存系统,当系统内存不足时,会自动清除部分数据。磁盘缓存则通常使用沙盒中的特定文件夹来存储数据,例如SQLite数据库、文件系统或者使用第三方库如SDWebImage...

    MemoryNotice.zip

    同时,合理使用NSCache来缓存数据,而非使用强引用,因为NSCache会在收到内存警告时自动清空。 总的来说,"MemoryNotice.zip"可能提供了一些实用的代码示例、最佳实践或教程,帮助开发者理解并解决iOS应用中的内存...

    网络游戏-iOS网络请求拦截转发缓存方法及系统.zip

    4. 自定义缓存:可以创建一个全局的NSCache实例,当请求完成后,将数据存入缓存,下次请求相同资源时,首先检查缓存,若有则直接返回,无则发起网络请求。 五、性能优化 1. 利用HTTP/2多路复用技术,减少网络请求...

    图片下载缓存读取

    创建一个`NSCache`实例,将下载的图片数据转换为`UIImage`后存入缓存,键值为图片URL字符串。 ```swift let cache = NSCache, UIImage>() if let image = UIImage(data: data) { cache.setObject(image, forKey:...

    ios图片下载机制

    然而,考虑到内存限制,当系统需要释放内存时,NSCache的内容可能会被自动清除。因此,为了长期保存图片,我们还需要使用文件系统(如Documents或Library/Caches目录)来存储图片文件。 在iOS中,我们可以使用...

    swift-EasyStash是Swift中一个简单轻量级的持久性框架

    EasyStash的核心思想是将NSCache和FileManager的功能进行抽象和封装,使得开发者能够更加高效、便捷地进行数据管理。 在iOS应用开发中,数据持久化是一个关键部分,它允许应用在关闭后或设备重启后仍能保留数据。...

    ios-HWPhoto.zip

    NSCache是一个内存中的键值对存储,适合存放临时数据,当系统内存不足时,它会自动清理。而SDWebImage则是一个强大的图片加载库,它支持网络图片的异步加载、缓存策略以及图片的圆角处理等功能。通过使用这些库,...

    uitableVIew异步加载图片

    2. **使用`NSCache`存储图片**:在请求完成后,将图片缓存到内存中的`NSCache`,而不是直接更新Cell。当Cell需要显示图片时,先从缓存中查找,如果没有找到再发起请求。 3. **使用`NSOperationQueue`**:异步加载...

Global site tag (gtag.js) - Google Analytics