2016-11-23 3 views
3

Kingfisherを使って取得した画像が占めるすべてのメモリを解放する必要があります。私は、多くの画像を格納し、さらに読み込み機能を持っているUITableViewを持っています。Kingfisherin UITableViewを使用して読み込まれた画像のメモリとディスクキャッシュをクリアするには?

私はこれらの対策を試みました。

viewDidLoad()では、キャッシュサイズを設定しています。

let cache = KingfisherManager.sharedManager.cache 
cache.maxMemoryCost = 50 * 1024 * 1024 
// Set max disk cache to 50 mb. Default is no limit. 
cache.maxDiskCacheSize = 50 * 1024 * 1024 
// Set max disk cache to duration to 3 days, Default is 1 week. 
cache.maxCachePeriodInSecond = 60 * 60 * 24 * 3 

viewWillDisappear()で私はこれをクリアしています。

cache.clearMemoryCache() 
// Clear disk cache. 
cache.clearDiskCache() 
// Clean expired or size exceeded disk cache. 
cache.cleanExpiredDiskCache() 

メモリが期待通りに空き状態にならない。私が何かを紛失した場合、親切に私を修正してください。 documentationによると

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    cache.clearMemoryCache() 
    cache.clearDiskCache() 
    cache.cleanExpiredDiskCache() 
} 

答えて

3

メモリ警告を受けたときに

カワセミはメモリキャッシュを消去します、また、必要に応じて期限切れのキャッシュを超過し、キャッシュを超過することもありません。通常、キャッシュを自分できれいにする必要はありません。これらのメソッドは、ユーザーがキャッシュをより詳細に制御できるようにするために存在します。

1

:今私はキャッシュをクリアし、それは私のためにうまく働いたメモリの警告を受信する

関連する問題