0

我想做的是将玩家在游戏中存活的总时间加起来。所以,每次游戏开始时,我都会启动一个计时器,当玩家死亡时,我会终止计时器。每次发生这种情况时,我都希望将这个新时间加到总生存时间中。这是我的代码:

int newTime = [newTimeLabel.text intValue];
int totalTime = [totalTimeLabel.text intValue];
int newTotalTime = newTime + totalTime;
totalTimeLabel.text = [NSString stringWithFormat:@"Total Time: %d",newTotalTime];

但是,totalTimeLabel.text 只显示新时间,而不是添加到先前总时间的 newTime。我不确定我做错了什么。

我试图实现的一个例子:

试验一:
newTime = 5
totalTime = 0
newTotalTime = 5 + 0 = 5

试验 2:
newTime = 7
totalTime = 5
newTotalTime = 7 + 5 = 12

试验 3:
newTime = 3
totalTime = 12
newTotalTime = 3 + 12 = 15

等等...

4

1 回答 1

1

问题是您正在尝试使用 UI 元素(Model-View-Controller的View )来存储您的应用程序状态/数据(Model -View-Controller中的 Model )。

您应该使用一些适当类型的数据变量来存储您的总累积时间和您的新时间,并且您应该将它们加在一起并完全独立于 UI ( View )来跟踪它们。

如果这些值是瞬态的(即只需要在Controller的生命周期内维护),那么可以(从实际的角度来看,不是纯MVC的)跳过整个Model部分,只在你的控制器。然后,每当您更新它们时,您还应该通过设置标签来更新视图。我现在推荐这种方法。

但是,如果用户关闭应用程序并稍后返回,如果这些值保持不变不是很好吗?在这种情况下,您应该实现一个持久数据模型,这些值将存储在那里,以便即使在应用程序关闭后您也可以检索它们。

搜索有关MVC设计模式的信息,您会发现它对设计和实现应用程序非常有帮助。它将帮助你避免愚蠢的错误,这些错误会在以后再次咬你:)

于 2012-06-13T01:17:33.327 回答