听起来你把它弄得太复杂了。显然,这个想法并不是真正的“有一个名为的变量totalSave
”,因为用户可能不太关心你将它存储在哪里,而从你的帖子的其余部分来看,你实际上并不关心你如何存储它。
也就是说,为了使这一点更加具体,让我们考虑一下程序的许多部分可能会添加到的“总分”状态。您可以采取几种方法。无论如何,您可能在某处有一些对象正在跟踪分数。我们称它为Game
对象,但它可以是 aLevel
或其他。
所以有三大流派:你可以把这个Game
对象传给每个人,你可以有一个Game
单例,或者你可以使用通知。这些方法中的每一种都有优点,您选择的任何一种都可能适用于简单的程序(就个人而言,对于非常简单的程序,我会使用单例)。
在第一个方案中,在程序中的某个时刻,您创建了一个Game
具有某种addToScore:
方法的对象。您将此对象分配为需要更新分数的每个其他对象的属性。这些电话中的每一个[self.game addToScore:value]
。这种方法使单元测试更简单一些,但实现起来可能有点乏味。
在第二种方案中,您有一些共享单例 +[Game sharedGame]
。当您想更新分数时,请调用[[Game sharedGame] addToScore:value]
。这通常是最容易实现的。
在第三种方案中,您有一些对象 ( Game
) 用于NSNotificationCenter
观察某些通知。当您想要更新分数时,您只需发布一个通知,其中包含要添加到其用户字典中的数量。这对于保持事物极度解耦非常有用,但在更常见的情况下可能会有点乏味。
但正如@Chuck 所指出的,您可能想多了,您可能想返回并完成一些教程,以更好地了解这些事情通常是如何工作的。你描述的这种情况不是很复杂。