从NSUserDefaults更新UILabel

时间:2013-05-19 06:07:55

标签: ios uilabel nsuserdefaults

我正在尝试为我的游戏保存/加载一些数据(在这种情况下,玩家可以使用的提示数量)。如果他们是第一次玩游戏,他们会得到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]];
}

任何有助于我指向正确方向的帮助都表示赞赏。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在这里,我想在您的问题中添加一些内容作为预防措施,可能是这样,您已经采取了谨慎措施,但我仍然试图说您在下面看到。

检查您是否正在调用loadSetting方法在调用您想要显示某些信息的任何其他方法(saveSettings方法和updateLabel方法)之前。查看您尚未设置任何值除了单一方法(loadSetting)之外,如果该方法没有计算它意味着你在0 number上获得了这个UILabel,那么这些提示会被计数。所以你应该照顾这个单一的方法,不管你有没有在通过loadSetting向用户显示提示计数之前,正确调用了UILabbel方法。因为在查看代码之后,您似乎以正确的方式完成了所有操作。

您可以查看此信息,但在所需位置设置一些断点,并查看其背后的主要原因。

我希望它可以帮助你,并且可以提出任何想法,以便你可以从上面得到一些帮助