在NSUserDefaults中设置变量

时间:2014-07-24 06:37:57

标签: ios objective-c plist

我正在尝试使用NSUserDefaults功能来保存我的游戏。我的问题是如何在NSUserDefaults中对变量进行编码,以便我可以按一个按钮,该值可以加起来为原始值。

我已尝试使用以下代码进行保存并加载方法,但未能正确加载数字。

保存

- (IBAction)water2:(id)sender {

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

    NSMutableArray * water = [defaults objectForKey:@"water"];

    for(NSNumber * waternumber in water) {
        NSLog(@"Score: %i", [waternumber intValue]);

        NSMutableArray * water = [NSMutableArray arrayWithObjects:
                                  [NSNumber numberWithInt:[waternumber intValue]+1], nil];

        [defaults setObject:water forKey:@"water"];

    NSLog(@"Score: %i", [waternumber intValue]);

        NSMutableArray * nestedStructure = [[[NSUserDefaults standardUserDefaults] objectForKey: @"nested"] mutableCopy];

        // Make some change to the structure

        // Add it the whole thing back into NSUserDefaults
        [[NSUserDefaults standardUserDefaults] setObject:nestedStructure forKey:@"nested"];
        // Synchronize to ensure it's saved
        [[NSUserDefaults standardUserDefaults] synchronize];
    } }

加载方法:

- (IBAction)continue:(id)sender {
    NSMutableArray * nestedStructure = [[[NSUserDefaults standardUserDefaults] objectForKey: @"nested"] mutableCopy];

    // Make some change to the structure

    // Add it the whole thing back into NSUserDefaults
    [[NSUserDefaults standardUserDefaults] setObject:nestedStructure forKey:@"nested"];
    // Synchronize to ensure it's saved
    [[NSUserDefaults standardUserDefaults] synchronize];
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

    NSMutableArray * water = [defaults objectForKey:@"water"];

    for(NSNumber * waternumber in water) {
        NSLog(@"water: %i", [waternumber intValue]);
    }

1 个答案:

答案 0 :(得分:0)

保存到NSUserDefaluts

 NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
 NSMutableArray * water = [[NSMutableArray alloc] init];
 [defaults  setObject: water forKey:@"water"];

进入某些地方

 NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
 NSMutableArray *water1 = [[NSMutableArray alloc]initWithArray:[defaults objectForKey:@"water"]];