保存和加载NSNumber

时间:2014-02-01 04:56:15

标签: int nsuserdefaults nsnumber

我正在开发BlackJack游戏,但我无法找到使用NSNumbers和NSUserDefaults保存和加载名为PlayerMoney的int的正确方法。

以下是我尝试加载值的方法

-(void)createSceneContents {


    //Load ---------------------------------------------------------
    NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults];
    NSNumber *PlayerMoneyLoad = [Defaults objectForKey:@"PlayerMoneySave"];
    self.PlayerMoney = PlayerMoneyLoad;
    NSLog(@"PlayerMoneyLoad:%@", PlayerMoneyLoad);
    NSLog(@"PlayerMoney:%@", self.PlayerMoney);

这是我尝试保存它的地方

    //Save ---------------------------------------------------------
    NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults];
    NSNumber *PlayerMoneySave = [NSNumber numberWithInt:self.PlayerMoney];
    [Defaults setObject:PlayerMoneySave forKey:@"PlayerMoneySave"];
    [Defaults synchronize];

之后我添加了一行

    self.PlayerMoney = PlayerMoneyLoad;

保存工作正常但加载游戏时“NSNumber PlayerMoneyLoad”不会将值传输到“int PlayerMoney”。现在我已经添加了这一行,当游戏保存时,似乎在150000000左右选择一个随机数,任何帮助都是值得赞赏的。

2 个答案:

答案 0 :(得分:0)

要将NSNumber转换为int,请使用以下代码:

NSNumber number = [NSNumber numberWithInt:10];    //Pass integer value to NSNumber
int intNumber = [number intValue];     // Get integer value back from NSNumber

通过这种方式,您可以将NSNumber转换为int

答案 1 :(得分:0)

你正在努力做到这一点。阅读NSUserDefaults的文档。

要保存,请执行:

[[NSUserDefaults standardUserDefaults] setInteger:self.PlayerMoney forKey:@"PlayerMoneySave"];

简单阅读:

self.PlayerMoney = [[NSUserDefaults standardUserDefaults] integerForKey:@"PlayerMoneySave"];

使用正确的API,事情总是更容易。