这是一个 iOS 101 问题,我因为不知道答案而感觉自己像个 SCSS :-) 问题是 - 如何将 iOS 应用程序重置为首次安装时的状态? 该应用程序将内容存储在 NSUserDefaults 和 plist 中。要求用户删除并重新安装应用程序似乎过分了。
除了要求我的用户简单地重新安装应用程序之外,还有哪些可能的选项可用(这会让我看起来有点缺乏创新:-))
这个特定的应用程序使用 NSUserDefaults 和 plists 来存储数据。但是当你想出你的创造性解决方案时,我也很感激其他情况的任何线索(即数据在核心数据和.plists中的位置)
此外,如果这是一个需要在应用代码中实现的功能,请感谢有关优雅解决方案的建议。
谢谢!
最佳答案
从沙盒中删除所有文件:
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];
}
仅重置用户默认值的替代方法:
NSDictionary *dRepr = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
for (NSString *key in dRepr) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
}
[[NSUserDefaults standardUserDefaults] synchronize];
[NSUserDefaults resetStandardUserDefaults];
关于iOS:无需重新安装即可重置 iOS 应用程序数据的可能选项有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675418/