iOS:重置iOS应用数据有哪些可能的选项而无需重新安装?

Coo*_*Man 3 core-data reset plist nsuserdefaults ios

这是一个iOS 101问题,我觉得不知道答案是一个屁股:-)问题是 - 如何将iOS应用程序重置为首次安装时的状态?该应用程序将内容存储在NSUserDefaults和plists中.如果要求用户删除并重新安装该应用程序似乎过分.

除了要求我的用户简单地重新安装应用程序之外,还有哪些可用的选项(这会让我看起来有点不创新:-))

这个特殊的应用程序使用NSUserDefaults和plists来存储数据.但是当你想出你的创造性解决方案时,我也会欣赏其他情况的任何线索(即核心数据和.plists中的数据)

此外,如果这是一个需要在应用程序代码中实现的功能,请欣赏有关优雅解决方案的建议.

谢谢!

小智 5

从沙箱中删除所有文件:

NSString *p = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
for (NSString *fname in @[ @"tmp", @"Library", @"Documents", @"Caches", @"Preferences" ]) {
    NSString *path = [p stringByAppendingPathComponent:fname];
    [[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
}
Run Code Online (Sandbox Code Playgroud)

仅重置用户默认值的替代方法:

NSDictionary *dRepr = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
for (NSString *key in dRepr) {
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
}

[[NSUserDefaults standardUserDefaults] synchronize];
[NSUserDefaults resetStandardUserDefaults];
Run Code Online (Sandbox Code Playgroud)

  • 如果您在StackOverflow上询问,代码解决方案确实是您应该期待的. (2认同)