2

プロジェクトに、プライベートサーバーにクエリを実行し、英数字のユーザーIDが与えられると人間が読める形式のユーザー名を返すクラスがあります。これをクラスメソッドとして実装しました。

サーバーにあまりクエリをかけたくありません。これはインスタンスメソッドを実装することで解決できることはわかっていますが、実際にはクラスメソッドを使用したいだけです。できれば?を使用して、ユーザーIDとユーザー名のペアのプライベートキャッシュを実装するにはどうすればよいNSMutableDictionaryですか?

4

1 に答える 1

3

を使用することをお勧めし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読むことをお勧めします。

于 2013-01-12T19:59:17.480 に答える