`
jsntghf
  • 浏览: 2476494 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

NSCache的下标用法

    博客分类:
  • iOS
阅读更多

NSCache类和NSDictionary类很相似,也提供key,value的存储方式,不一样的是NSCache在内存吃紧的时候会自动释放。

 

NSCache *cache = [[NSCache alloc] init];
[cache setObject:@"Eric" forKey:@"name"];
[cache setObject:@"Male" forKey:@"sex"];
// name:Eric, sex:Male
NSLog(@"name:%@, sex:%@", [cache objectForKey:@"name"], [cache objectForKey:@"sex"]);

 

如果需要NSCache支持下标语法的话,需要加个Category才可以。

 

@interface NSCache(NSCache_extension)

- (id)objectForKeyedSubscript:(id)key;
- (void)setObject:(id)object forKeyedSubscript:(id<NSCopying>)key;

@end

@implementation NSCache(NSCache_extension)

- (id)objectForKeyedSubscript:(id)key {
    return [self objectForKey:key];
}

- (void)setObject:(id)object forKeyedSubscript:(id<NSCopying>)key {
    [self setObject:object forKey:key];
}

@end

 

接下来就可以使用下标的写法了。

 

NSCache *cache = [[NSCache alloc] init];
cache[@"name"] = @"Eric";
cache[@"sex"] = @"Male";
// name:Eric, sex:Male
NSLog(@"name:%@, sex:%@", cache[@"name"], cache[@"sex"]);

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics