我在viewDidLoad中设置了一个值,这样它就可以成为默认设置,所以每当我加载到那个视图控制器中时,它就已经有了一个默认值。
我在这里使用NSUserDefaults:
- (void)viewDidLoad
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:1 forKey:@"defaultKey"];
NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];
if (defaultKey == 1){
// do something 1
} else if ( defaultKey == 2){
// do something 2
}
}但是我想要的是当一个按钮被按下的时候,比如button2,
-(IBAction) button2Pressed:(id)sender {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:2 forKey:@"defaultKey"];
}它会改变它的值。例如,我再次加载该ViewController,然后
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:2 forKey:@"defaultKey"];将是下一次加载时的设置。
发布于 2012-06-21 14:16:51
像这样做
- (void)viewDidLoad
{
NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];
if (defaultKey == 1){
// do something 1
} else if ( defaultKey == 2){
// do something 2
}
else
{
//for the first time
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:1 forKey:@"defaultKey"];
}
}和
-(IBAction) button2Pressed:(id)sender {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:2 forKey:@"defaultKey"];
}发布于 2012-06-21 14:19:53
试着这样做
NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];
if(defaultKey == 0){
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:1 forKey:@"defaultKey"];
}else if (defaultKey == 1){
// do something 1
} else if ( defaultKey == 2){
// do something 2
}发布于 2012-06-21 14:20:47
这没有意义。您应该首先将其设置为默认值(1或2)。在我看来,你应该在AppDelegate上这样做:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// it will return 0 if it doesn't exist
if([prefs integerForKey:@"defaultKey"] == 0){
[prefs setInteger:1 forKey:@"defaultKey"];
}这样,您就设置了默认值。之后,您可以将此逻辑保留在您的viewDidLoad中
- (void)viewDidLoad
{
NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];
if (defaultKey == 1){
// do something 1
} else if ( defaultKey == 2){
// do something 2
}
}然后在按下按钮时使用逻辑的其余部分:
-(IBAction) button2Pressed:(id)sender {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:2 forKey:@"defaultKey"];
}https://stackoverflow.com/questions/11132513
复制相似问题