我想保存一些用户首选项,但
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
只返回nil
。
iOS-Developper Library说,这应该返回现有的共享默认对象,如果不存在则创建一个...我错过了什么?
我也使用Appirater并且所有这些东西似乎也不起作用......
当用户按下按钮时会调用此代码...
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int index = ([defaults integerForKey:@"BackgroundColorSpecifier"]+ 1)%self.backgroundColors.count;
[defaults setInteger:index forKey:@"BackgroundColorSpecifier"];
[defaults synchronize];
这会在application: didFinishLaunchingWithOptions:
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
[standardDefaults registerDefaults:@{@"BackgroundColorSpecifier": @0}];
[standardDefaults synchronize];
当我调试此代码片段时,绿色的“位置指示器”以非常奇怪的方式跳转...
我没有任何线索,发生了什么......请帮助!
答案 0 :(得分:5)
调试器的问题远比其他任何问题更严重,特别是对于其他问题。我在自己的项目中看到了类似的东西,但除了通常的重启/清理选项之外,没有可靠的清除方法。
如果调试器有休息日,NSLogs通常会提供比调试器更一致的结果。
NSUserDefaults没有被破坏。我们现在已经听说过了。
答案 1 :(得分:-2)
您可以使用此功能记录userDefaults dic
- (void)logCache
{
NSDictionary * dic = [[NSBundle mainBundle] infoDictionary];
NSString *bundleId = [dic objectForKey: @"CFBundleIdentifier"];
NSUserDefaults *appUserDefaults = [[NSUserDefaults alloc] init];
NSDictionary *cacheDic = [appUserDefaults persistentDomainForName: bundleId];
NsLog(@"cacheDic::%@",cacheDic);
}