我正在开发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左右选择一个随机数,任何帮助都是值得赞赏的。
答案 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,事情总是更容易。