おそらく、NSCache の代わりに NSData を使用してサービスからデータを取得する必要があります。
NSCache は一時オブジェクト用ですが、NSData はアプリケーション間で (サービスからアプリへ) データを移動するために使用されます。
Apple による NSCache の説明:
NSCache オブジェクトは、NSDictionary クラスと同様に、キーと値のペアを格納するコレクションのようなコンテナーまたはキャッシュです。多くの場合、開発者はキャッシュを組み込んで、作成に費用がかかる一時的なデータを含むオブジェクトを一時的に格納します。これらのオブジェクトを再利用すると、値を再計算する必要がないため、パフォーマンスが向上します。ただし、オブジェクトはアプリケーションにとって重要ではなく、メモリが不足している場合は破棄できます。破棄された場合、それらの値は必要に応じて再計算する必要があります。
Apple による NSData の説明:
*NSData とその変更可能なサブクラスである NSMutableData は、バイト バッファー用のオブジェクト指向ラッパーであるデータ オブジェクトを提供します。データ オブジェクトを使用すると、単純に割り当てられたバッファー (つまり、ポインターが埋め込まれていないデータ) が Foundation オブジェクトの動作を引き継ぐことができます。
NSData は静的データ オブジェクトを作成し、NSMutableData は動的データ オブジェクトを作成します。NSData と NSMutableData は通常、データ ストレージに使用され、データ オブジェクトに含まれるデータをアプリケーション間でコピーまたは移動できる分散オブジェクト アプリケーションでも役立ちます。*