我无法让 NSUserDefaults 工作,尽我所知,有人有同样的问题吗?
I cannot get NSUserDefaults to work, tried all i know, anyone had same issue?
我无法 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;
这就是按钮和布尔值的所有代码,以使其保持解锁状态。
我知道这很简单,但行不通。也许是一个很深的错误我在 Xcode 的另一个更新版本上尝试过,但仍然无济于事。这个问题一直存在,是一个真正的问题。我什至试过开关保存也没有用。
我实际上看不到任何试图将任何内容保存到用户默认值的代码。您首先需要获取用户默认对象
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
写入布尔值:
[defaults setBool:YES forKey:@"EndHide"];
读取布尔值:
BOOL boolValue = [defaults boolForKey:@"EndHide"];
修正我可能犯的任何错误。
PS。除非您真正了解它的作用,否则不要使用 valueForKey。使用 objectForKey 或数组语法。
在确实加载的视图中试试这个
NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"0" forKey:@"test"];
NSString * testValue = [prefs ObjectforKey:@"test"];
NSLog(testValue);
你能告诉我控制台打印的是什么吗?
经过几天的寻找,我找到了。发生的事情是,我没有让 bool 始终更改,也就是 YES,我只是用这个保存了另一个 bool:
在视图中确实加载了顶部:
if (_EndHide == YES) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"boolSet"];
} else if (_EndHide == NO) { }
所以当 bool 为 yes 时你完成了游戏而不是这个代码:
在视图中加载顶部:
底部:
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"boolSet"]) {
NSLog(@"not workin -.-");
} else {
NSLog(@"finallyyyy workin !! YAeh");
_endless.hidden = NO;
}
代码总是记得 :D 谢谢大家试图帮助我这个方法是最好的,无尽的是一个按钮,创建另一个保存在内存中的 bool 使用它来解锁按钮。
我无法 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;
这就是按钮和布尔值的所有代码,以使其保持解锁状态。
我知道这很简单,但行不通。也许是一个很深的错误我在 Xcode 的另一个更新版本上尝试过,但仍然无济于事。这个问题一直存在,是一个真正的问题。我什至试过开关保存也没有用。
我实际上看不到任何试图将任何内容保存到用户默认值的代码。您首先需要获取用户默认对象
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
写入布尔值:
[defaults setBool:YES forKey:@"EndHide"];
读取布尔值:
BOOL boolValue = [defaults boolForKey:@"EndHide"];
修正我可能犯的任何错误。
PS。除非您真正了解它的作用,否则不要使用 valueForKey。使用 objectForKey 或数组语法。
在确实加载的视图中试试这个
NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"0" forKey:@"test"];
NSString * testValue = [prefs ObjectforKey:@"test"];
NSLog(testValue);
你能告诉我控制台打印的是什么吗?
经过几天的寻找,我找到了。发生的事情是,我没有让 bool 始终更改,也就是 YES,我只是用这个保存了另一个 bool: 在视图中确实加载了顶部:
if (_EndHide == YES) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"boolSet"];
} else if (_EndHide == NO) { }
所以当 bool 为 yes 时你完成了游戏而不是这个代码: 在视图中加载顶部: 底部:
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"boolSet"]) {
NSLog(@"not workin -.-");
} else {
NSLog(@"finallyyyy workin !! YAeh");
_endless.hidden = NO;
}
代码总是记得 :D 谢谢大家试图帮助我这个方法是最好的,无尽的是一个按钮,创建另一个保存在内存中的 bool 使用它来解锁按钮。