2016-12-16 20 views
2

9+スウィフト2.2アプリケーション、:NSURLSessionと画像キャッシュ

let session: NSURLSession = NSURLSession(configuration: self.configuration) 
    let request = NSURLRequest(URL: self.url) 
    let dataTask = session.dataTaskWithRequest(request) { (data, response, error) in 
     // Handle image 
    } 

    dataTask.resume() 
    session.finishTasksAndInvalidate() 

質問は:どのように私は画像のキャッシュサイズを制限することができますか?私のアプリケーションでは、デバイス上にますます多くのディスクスペースが使用されていることがわかります。イメージキャッシュを保持する方法はありますか?アプリケーションで使用できるサイズを制限する方法はありますか?デフォルトで有効期限はありますか?

答えて

1

NSURLSessionは、応答をキャッシュするために共有NSURLCacheを使用します。あなたが共有キャッシュのディスク/メモリ使用量を制限したい場合は、新しいキャッシュをcreate、デフォルトとして、それを設定する必要があります。

let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil) 
NSURLCache.setSharedURLCache(URLCache) 

あなたはhereをキャッシュについて少し詳細を見つけることができます。

+0

キャッシュ制限を設定すると、限界に達するとどうなりますか?古いキャッシュは新しいキャッシュに置き換えられますか? – Tiois

+0

URLCacheは、キャッシュされたレスポンスに関する情報を保持します。レスポンスが作成されたとき、最後に使用されたときなどです。新しいレスポンスを保存するスペースがない場合、長時間使用されなかった保存されたURLCacheが削除されます。 – Avt

+0

私は現在ディスク容量が設定されておらず、デフォルト値が使用されていないようです(20MBのディスク容量)、私はローカルに何も保存せず、アプリケーションは60MBのドキュメントとデータを使用しています... – Tiois

関連する問題