我的项目中有一个类,它查询私有服务器并在获得字母数字用户 ID 时返回一个人类可读的用户名。我将其实现为类方法。
我不想过多地查询服务器。我知道这可以通过实现实例方法来解决,但我真的只想使用类方法。如何实现用户 ID/用户名对的私有缓存,最好使用NSMutableDictionary
?
我的项目中有一个类,它查询私有服务器并在获得字母数字用户 ID 时返回一个人类可读的用户名。我将其实现为类方法。
我不想过多地查询服务器。我知道这可以通过实现实例方法来解决,但我真的只想使用类方法。如何实现用户 ID/用户名对的私有缓存,最好使用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
您将需要编写一些委托给您的类方法,NSCache
具体取决于您的用例。例如,如果您正在缓存来自网络请求的数据,您可能会编写如下方法:
+ (void)cacheResponse:(NSData *)response forURL:(NSURL *)URL
{
[Cache setObject:response forKey:URL];
}
+ (NSData *)cachedResponseForURL:(NSURL *)URL
{
return [Cache objectForKey:URL];
}
为了进一步阅读,我建议阅读 NSHipster 的精彩文章NSCache
。