我无法NSUserDefaults
保存BOOL
值。它非常简单,人们会这样做,但它根本就不会保存。我尝试了我所知道的一切。最近的尝试是这样的:
if (_EndHide == YES) {
NSDictionary *aProperties = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]forKey:@"EndHide"];
BOOL boolValue;
if ([aProperties valueForKey:@"EndHide"])
boolValue = [[aProperties valueForKey:@"EndHide"] boolValue];
} else if (_EndHide == NO) {
NSDictionary *aProperties = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO]forKey:@"EndHide"];
BOOL boolValue;
if ([aProperties valueForKey:@"EndHide"])
boolValue = [[aProperties valueForKey:@"EndHide"] boolValue];
}
我正在制作适用于iPhone的iOS应用游戏,当你躲过这些好的物品一段时间后,你就会结束游戏并在故事后解锁开始菜单上一个名为“无尽”的按钮。
现在我需要这个按钮不断解锁。我设法通过一个场景解锁它。它一切正常,但它只是不会保持解锁状态。有没有人有任何建议来帮助我?
这是无限按钮配置和bool配置:
@property(nonatomic, getter=isActive) bool EndHide;
@property(nonatomic) IBOutlet UIButton *endless;
这就是按钮和bool的所有代码,无论如何都要保持解锁状态。
我知道它很简单,但它不会起作用。也许是一个很深的错误,我在另一个更新版本的Xcode上尝试了它,但仍无济于事。问题是持久的,是一个真正的问题。我甚至尝试过切换保存也没有用。
答案 0 :(得分:2)
我实际上看不到任何试图将任何内容保存到用户默认值的代码。首先需要获取用户默认对象
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
写一个bool值:
[defaults setBool:YES forKey:@"EndHide"];
读取bool值:
BOOL boolValue = [defaults boolForKey:@"EndHide"];
修复我自己可能犯的任何错误。
PS。除非你真正理解它的作用,否则不要使用valueForKey。使用objectForKey或数组语法。
答案 1 :(得分:0)
经过几天的搜索,我发现了它。会发生什么,而不是保持bool改变又名总是YES我只是用这个保存另一个bool: 在视图中加载顶部:
if (_EndHide == YES) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"boolSet"];
} else if (_EndHide == NO) { }
所以当bool为是时,你完成游戏而不是这段代码: 在视图中加载顶部: 底部:
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"boolSet"]) {
NSLog(@"not workin -.-");
} else {
NSLog(@"finallyyyy workin !! YAeh");
_endless.hidden = NO;
}
代码总是记得:D谢谢大家试图帮助我这个方法是最好的,无穷无尽的是一个按钮,创建另一个保存在内存中的bool使用它来解锁按钮。
答案 2 :(得分:-1)
在视图中尝试加载
NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"0" forKey:@"test"];
NSString * testValue = [prefs ObjectforKey:@"test"];
NSLog(testValue);
你能告诉我控制台打印出来的是什么吗?