在iOS中以编程方式清空缓存

Ste*_*n S 6 caching ios nscache

有没有巧合的人知道如何清空我正在开发的iOS应用程序的缓存内存,在它进入后台的那一刻(applicationDidEnterBackground)?我已经调查了NSCache,但我仍然无法理解如何检索缓存基本上删除/释放它?

Alf*_*sen 4

你说的是这个吗?

[[NSURLCache sharedURLCache] removeAllCachedResponses];
Run Code Online (Sandbox Code Playgroud)

您还可以修改请求的缓存行为以有选择地缓存响应。AFNetworking如果您偶然使用,则可以使用setCacheResponseBlock. 例如,在一个项目中,我将其设置为返回nil所有大型视频和音频文件。但允许它缓存较小的图像文件。

[streamingOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
    return nil; // Ensures we are not unecessarily caching asset data to Cache.db
}];
Run Code Online (Sandbox Code Playgroud)