3

我有一个 iOS 应用程序,它存储数据,NSUserDefults并且由于 Web 视图加载、社交媒体签名等,许多其他数据被设置在缓存中。我想从应用程序创建的缓存中删除所有数据。

有什么方法可以在 iOS 中以编程方式执行此操作吗?

4

6 回答 6

2

尝试

 NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
 [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

或者

[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
于 2014-11-25T10:43:06.527 回答
2

你可以试试这个

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];

//删除cookies

 for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {

  if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {

    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
  }
 }
于 2014-11-25T10:33:31.993 回答
1

尝试这个,

 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];
于 2014-11-25T10:47:32.093 回答
1

一些缓存与其他应用程序的信息相关联。删除它们时应该小心。只是提醒您在操作前检查。我以前也犯过类似的愚蠢错误。如果你找到了一个很棒的工具。请分享!谢谢。

于 2014-11-28T06:56:32.740 回答
0

您可以尝试使用[[NSURLCache sharedURLCache] removeAllCachedResponses];

更多详情,请参考链接http://iphonedevsdk.com/forum/iphone-sdk-development/104198-programmatically-clearing-app-cache.html

于 2014-11-25T09:46:54.387 回答
0

如果你使用NSUserDefaults,你可以试试这个

至于其他缓存文件,我认为你应该将它们全部保存在一个文件夹中,以便通过删除整个缓存文件夹来轻松删除它们。

于 2014-11-25T09:59:25.610 回答