小编BDu*_*ook的帖子

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

iphone nsuserdefaults

6
推荐指数
1
解决办法
2万
查看次数

NSMutableArray删除对象但随后应用程序崩溃

我认为这是一个奇怪的错误,但当然我对iPhone开发相对较新,所以它可能毕竟不是那么奇怪.

我有一个我正在跟踪的对象数组(NSMutableArray)(每次用户触摸按钮时都会添加一个对象)我正在尝试做的是当数组达到某个值时我添加了新对象到数组的开头,然后删除数组中的最后一个对象.当我单步执行我的代码时,一切正常,对象被删除但是应用程序崩溃了......当应用程序崩溃并且应用程序中没有循环或计时器时,调试器不在任何代码行上,所以我可以'想到其他任何正在运行的东西.

这是在崩溃之前执行的代码

if([objectArray count] > 10)
{
    MyObject *objectToRemove = [[MyObject alloc] init];
    objectToRemove = [objectArray objectAtIndex:10];
    [objectArray removeObjectAtIndex:10];
    [objectToRemove removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)

这段代码的要点是,每当用户触摸一个按钮时,一个对象被添加到屏幕并显示,然后当对象的数量达到10并且用户再次触摸该按钮时,添加的第一个对象被移除并且显示新对象.如果我注释掉removeObjectAtIndex行,一切都按预期工作,但数组继续增长.

在删除UIview并且应用程序的行为方式相同之后,我也尝试删除该对象.如果我尝试从不同索引(IE 3)的数组中删除一个对象,应用程序不会崩溃,但它不会给我我预期的结果.但就像我说代码运行正常,当我在执行行之前和之后检查数组的计数时,值分别为11和10.

您可以提供任何帮助,我们将不胜感激,

BWC

iphone nsmutablearray

0
推荐指数
1
解决办法
2225
查看次数

标签 统计

iphone ×2

nsmutablearray ×1

nsuserdefaults ×1