NSUserDefaults无法正常保存

BDu*_*ook 6 iphone nsuserdefaults

嘿伙计我有NSUserDefaults的问题,我不太明白发生了什么

我的应用程序有5个级别,每个级别与NSUserDefaults完全相同(检索级别默认值,在用户播放级别时更改值,然后在级别结束时设置默认值和同步)前4个级别.没有故障的工作,但最后一级没有保存价值.该应用程序不会崩溃,最后一个级别不是最后发生的事情,我甚至在应用程序终止时同步默认值.在NSUserDefaults上是否有最大尺寸,或者有什么人都可以想到我没有,我会发布下面的代码,但就像我说的前四个级别完美

//header
NSUserDefaults *userData;


@property(nonatomic,retain) NSUserDefaults *userData;


//class file
//Sets the boolean variables for the class to use
userData = [NSUserDefaults standardUserDefaults];
boolOne = [userData boolForKey:@"LevelFiveBoolOne"];
boolTwo = [userData boolForKey:@"LevelFiveBoolTwo"];
boolThree = [userData boolForKey:@"LevelFiveBoolThree"];
boolFour = [userData boolForKey:@"LevelFiveBoolFour"];
boolFive = [userData boolForKey:@"LevelFiveBoolFive"];
boolSix = [userData boolForKey:@"LevelFiveBoolSix"];
boolSeven = [userData boolForKey:@"LevelFiveBoolSeven"];

//End Of Level
[userData setBool:boolOne forKey:@"LevelFiveBoolOne"];
[userData setBool:boolTwo forKey:@"LevelFiveBoolTwo"];
[userData setBool:boolThree forKey:@"LevelFiveBoolThree"];
[userData setBool:boolFour forKey:@"LevelFiveBoolFour"];
[userData setBool:boolFive forKey:@"LevelFiveBoolFive"];
[userData setBool:boolSix forKey:@"LevelFiveBoolSix"];
[userData setBool:boolSeven forKey:@"LevelFiveBoolSeven"];
[userData synchronize];
Run Code Online (Sandbox Code Playgroud)

当我切换到使用这些默认值的视图时,它们的值是正确的,但是当我终止应用程序并重新启动它时,这些值不会被保存,每个其他级别执行完全相同的过程,这是唯一不起作用的级别.

我已经盯着这一段很长一段时间了,我希望那里有人遇到同样的问题,并能给我一些关于他们如何解决它的见解.

谢谢你提前BWC

Nic*_*rge 13

NSUserDefaults可能没有机会保存,具体取决于进程的终止方式.

这个答案有更多信息:为什么NSUserDefaults没有保存我的值?