我要做的是将玩家在游戏中活着的总时间加起来。因此,每次游戏开始时,我都会启动计时器,当玩家死亡时,我会终止计时器。每次发生这种情况,我都希望将这个新时间加到活着的总时间中。这是我的代码:
int newTime = [newTimeLabel.text intValue];
int totalTime = [totalTimeLabel.text intValue];
int newTotalTime = newTime + totalTime;
totalTimeLabel.text = [NSString stringWithFormat:@"Total Time: %d",newTotalTime];
但是,totalTimeLabel.text始终只显示新时间,而不是新时间添加到上一个总时间。我不确定我做错了什么。
我想要实现的一个例子:
试验1:新时间= 5
总时间= 0
newTotalTime = 5 + 0 = 5试验2:
newTime = 7
totalTime = 5
newTotalTime = 7 + 5 = 12试验3:
newTime = 3
totalTime = 12
newTotalTime = 3 + 12 = 15
等等......
答案 0 :(得分:1)
问题是您尝试使用UI元素(模型 - 视图 - 控制器中的查看)来存储您的应用程序状态/数据( 模型 - 视图 - 控制器中的模型。
您应该使用适当类型的一些数据变量来存储您的总累计时间和新时间,并且您应该将它们一起添加并完全独立于UI(查看)跟踪它们。
如果这些值是瞬态的(即只需要在控制器的生命周期内维持)那么它就可以了(从实际的角度来看,不是纯粹的 MVC one)跳过整个模型部分,只需在控制器中包含两个变量。然后,每当您更新它们时,您还应该通过设置标签来更新查看。我现在推荐这种方法。
但是,如果用户关闭应用程序并稍后返回,那么这些值是否仍然存在会不会很好?在这种情况下,您应该实现持久数据 - 模型,并将这些值存储在那里,以便即使在应用程序关闭后也可以检索它们。
搜索有关 MVC 设计模式的信息,您会发现它在设计和实施应用时非常有用。它将帮助您避免以后会再次咬你的愚蠢错误:)