我正在尝试为我的游戏保存/加载一些数据(在这种情况下,玩家可以使用的提示数量)。如果他们是第一次玩游戏,他们会得到10个提示,否则,它会加载他们上次退出游戏之前的提示数量。我的问题是,当我第一次开始游戏时,我将提示数量设置为10,但UILabel显示为0.
这些是我的保存和加载方法:
- (void)saveSettings
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings setInteger:self.tipCount forKey:@"tipCount"];
}
- (void)loadSettings
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
if (![settings boolForKey:@"userDefaultsSet"])
{
[settings setBool:1 forKey:@"userDefaultsSet"];
[settings setInteger:10 forKey:@"tipCount"];
self.tipCount = 10;
} else {
self.tipCount = [settings integerForKey:@"tipCount"];
}
}
这就是我更新标签的方式:
- (void)updateLabel
{
Quiz* sharedQuiz = [Quiz sharedInstance];
self.statusLabel.text = [NSString stringWithFormat:@"Tips Remaining: %d", [sharedQuiz tipCount]];
}
任何有助于我指向正确方向的帮助都表示赞赏。提前谢谢!
答案 0 :(得分:0)
在这里,我想在您的问题中添加一些内容作为预防措施,可能是这样,您已经采取了谨慎措施,但我仍然试图说您在下面看到。
检查您是否正在调用loadSetting
方法在调用您想要显示某些信息的任何其他方法(saveSettings
方法和updateLabel
方法)之前。查看您尚未设置任何值除了单一方法(loadSetting
)之外,如果该方法没有计算它意味着你在0 number
上获得了这个UILabel
,那么这些提示会被计数。所以你应该照顾这个单一的方法,不管你有没有在通过loadSetting
向用户显示提示计数之前,正确调用了UILabbel
方法。因为在查看代码之后,您似乎以正确的方式完成了所有操作。
您可以查看此信息,但在所需位置设置一些断点,并查看其背后的主要原因。
我希望它可以帮助你,并且可以提出任何想法,以便你可以从上面得到一些帮助