我的项目中有一个类,它查询私有(private)服务器并在获得字母数字用户 ID 时返回人类可读的用户名。我将其实现为类方法。
我不想过多查询服务器。我知道这可以通过实现实例方法来解决,但我真的只想使用类方法。如何实现用户 ID/用户名对的私有(private)缓存,最好使用 NSMutableDictionary
?
最佳答案
我建议使用NSCache
。在类的实现文件中创建一个static
变量。例如:
#import "MyClass.h"
static NSCache *Cache;
@implementation MyClass
+ (void)initialize
{
[super initialize];
Cache = [[NSCache alloc] init];
}
// Rest of class implementation here
@end
您将需要根据您的用例编写一些委托(delegate)给 NSCache
的类方法。例如,如果您要缓存来自网络请求的数据,您可以编写如下方法:
+ (void)cacheResponse:(NSData *)response forURL:(NSURL *)URL
{
[Cache setObject:response forKey:URL];
}
+ (NSData *)cachedResponseForURL:(NSURL *)URL
{
return [Cache objectForKey:URL];
}
要进一步阅读,我建议阅读 NSHipster 的精彩文章 article on NSCache
.
关于ios - 如何在类方法中实现键值对的简单本地缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291698/