0

我对 Objective-C 很陌生,在我学习的过程中,我一直在尝试制作自己的程序。这个想法是有一个名为的变量(或对象?)totalSave,一个addToTotalSaved带有参数的方法saveAmount,以及多个对象(每个对象会给参数saveAmount一个不同的值),当它们被执行时将导致addToTotalSaved被“发送”,或者任何术语就是totalSave这样,totalSave增加了正确的数量。

首先,如果我对代码如何工作的想法完全错误,你能提供更好的方法吗?...我觉得这不应该很复杂 - 但否则我的问题是应该totalSave是什么?一个整数?一个NSInteger?一个东西?

4

2 回答 2

1

听起来你把它弄得太复杂了。显然,这个想法并不是真正的“有一个名为的变量totalSave”,因为用户可能不太关心你将它存储在哪里,而从你的帖子的其余部分来看,你实际上并不关心你如何存储它。

也就是说,为了使这一点更加具体,让我们考虑一下程序的许多部分可能会添加到的“总分”状态。您可以采取几种方法。无论如何,您可能在某处有一些对象正在跟踪分数。我们称它为Game对象,但它可以是 aLevel或其他。

所以有三大流派:你可以把这个Game对象传给每个人,你可以有一个Game单例,或者你可以使用通知。这些方法中的每一种都有优点,您选择的任何一种都可能适用于简单的程序(就个人而言,对于非常简单的程序,我会使用单例)。

在第一个方案中,在程序中的某个时刻,您创建了一个Game具有某种addToScore:方法的对象。您将此对象分配为需要更新分数的每个其他对象的属性。这些电话中的每一个[self.game addToScore:value]。这种方法使单元测试更简单一些,但实现起来可能有点乏味。

在第二种方案中,您有一些共享单例 +[Game sharedGame]。当您想更新分数时,请调用[[Game sharedGame] addToScore:value]。这通常是最容易实现的。

在第三种方案中,您有一些对象 ( Game) 用于NSNotificationCenter观察某些通知。当您想要更新分数时,您只需发布一个通知,其中包含要添加到其用户字典中的数量。这对于保持事物极度解耦非常有用,但在更常见的情况下可能会有点乏味。

但正如@Chuck 所指出的,您可能想多了,您可能想返回并完成一些教程,以更好地了解这些事情通常是如何工作的。你描述的这种情况不是很复杂。

于 2013-11-07T18:34:00.867 回答
0

听起来您想要一个包含总数的整数值的类。然后你想给那个类一个函数 addToTotal(somenum)。

可以想象,您可以通过程序来完成所有这些操作,但是如果您想重新使用这个 Total,我建议您将它塞进一个类中。

于 2013-11-07T18:02:03.243 回答