这听起来可能真的很低级!我想检查用户是不是第二次进入我的应用程序,所以为了保持运行次数,我使用了NSUserDefaults
。我在rootViewController
的viewDidLoad
方法中实现了以下代码:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]);
if ([userDefaults integerForKey:@"runCount"] != 1) {
//not the 2nd run
[userDefaults setInteger:1 forKey:@"runCount"];
NSLog(@"not 2nd run");
} else {
//second run or more
NSLog(@"2nd run");
}
[userDefaults synchronize];
一切正常,但问题是,当我卸载(删除并重新安装)根据here和here的应用程序时,数据应该被清除,但它没有,并且在重新安装应用程序后,以前的数据仍然显示。我使用xCode6-beta在iOS模拟器上运行我的应用程序,目标是在iOS 8上运行该应用程序
发布于 2016-02-04 13:33:19
对于任何面临同样问题的人。
如果您在同一组下有多个应用程序,并且所有这些应用程序都在使用应用程序组(在功能下打开),则必须从设备中删除所有应用程序,以便清除用户默认设置。
由于用户默认设置是共享的,即使其中一个应用程序在设备上,它也不会被删除,因为该应用程序将使用用户默认设置。
发布于 2014-07-27 21:29:29
代码应该可以在设备上正常工作。也许模拟器里有一些虫子。
尝试重置模拟器的内容和设置。
发布于 2014-10-21 06:24:57
这是一个错误,您可以使用以下代码删除NSUserDefaults
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
https://stackoverflow.com/questions/24985825
复制相似问题