我有一个iOS应用程序,用于存储NSUserDefults
中的数据,并且由于Web视图加载,社交媒体签名等原因,许多其他数据都在缓存中设置。
我想从应用程序创建的缓存中删除所有数据。
有没有办法在iOS中以编程方式执行此操作?
答案 0 :(得分:2)
尝试
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
或
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
答案 1 :(得分:1)
你可以试试这个
<强> NSUserDefaults的强>
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
或
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict) {
[defs removeObjectForKey:key];
}
[defs synchronize];
UIWebview缓存
[NSURLCache sharedURLCache] removeAllCachedResponses];
//删除Cookie
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
}
答案 2 :(得分:1)
试试这个,
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];
答案 3 :(得分:1)
部分缓存与其他应用程序相关联。信息。删除它们时应该小心。提醒您在操作前检查。我之前犯过类似的愚蠢错误。如果你找到了一个很棒的工具。请分享!谢谢。
答案 4 :(得分:0)
您可以尝试使用[[NSURLCache sharedURLCache] removeAllCachedResponses];
有关详细信息,请参阅链接http://iphonedevsdk.com/forum/iphone-sdk-development/104198-programmatically-clearing-app-cache.html
答案 5 :(得分:0)
如果您使用NSUserDefaults
,则可以尝试this。
就其他缓存文件而言,我认为您应该将所有缓存文件保存在一个文件夹中,以便通过删除整个缓存文件夹轻松删除它们。