使用全局变量或单身人士的记分牌

时间:2011-01-09 22:54:52

标签: objective-c singleton global-variables ipad

对于我写的iPad程序,我使用模态视图作为用户访问记分板的方式。分数是手动保留的。在记分牌视图中,我有一个按钮来增加分数,一个减少分数,更新UILabel以显示更新的分数。第三个按钮用于关闭记分板,模态视图被关闭。

在游戏过程中,我访问记分牌并更新分数。然后我关闭记分牌并继续玩游戏。游戏玩法包括使用UINavigationController访问多个视图。当我稍后在游戏中访问记分牌时,分数将重置为0.

如何存储变量,所以当访问记分板时,它会保留用户设置的分数?

我一直在研究全局变量,单例和其他一些方法。关于如何做到这一点似乎存在很多争论。由于记分板是从几个不同的视图访问的,我不知道如何存储得分变量。

我非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

就我个人而言,我认为最好避免使用全局变量,因为它打破了封装,并且可能没有必要使用单例(在我看来,在大多数情况下更好地避免它)。 / p>

可能对您有用的一种可能性(根据您的描述所说)将是UINavigationController的子类,并为子类中的记分板视图提供实例变量。听起来总是从导航控制器控制的视图访问记分板视图。任何视图控制器将调用记分板视图都可以获取导航控制器对象并使用其记分板对象(将具有当前分数)作为模态视图。

我也不清楚显示得分的UILabel是记分板视图的一部分还是属于另一个视图。如果它属于另一个视图,也可以从UILabel中检索分数,然后更新它。

如果您需要持续得分,那么您可以使用NSUserDefaults存储得分。

希望这有帮助。