我对Objective-C很新,而且我一直在学习,我一直在努力制作自己的程序。
我们的想法是有一个名为totalSave
的变量(或对象?),一个带有参数addToTotalSaved
的方法saveAmount
和多个对象(每个对象都会给出参数saveAmount
一个不同的值),当被采取行动时,addToTotalSaved
将totalSave
'被'发送',或者无论术语是什么,都会totalSave
,以便totalSave
增加正确的金额。
首先,如果我对代码如何工作的想法是完全错误的,你能提供更好的方法吗? ......我觉得这应该不复杂 - 但我的问题是{{1}}应该是什么?一个int?一个NSInteger?一个东西?
答案 0 :(得分:1)
听起来好像你让它变得过于复杂。显然,这个想法并不是真的“有一个名为totalSave
的变量”,因为用户可能不在乎你存储它的位置,而且从帖子的其余部分开始,你实际上并不关心如何存储它
那就是说,为了使这个更具体一点,让我们考虑一下程序的许多部分可能会增加的“总分”状态。您可以采取几种方法。无论如何,你可能在某个地方有一些跟踪得分的对象。我们将其称为Game
对象,但它可以是Level
或其他。
因此,有三大思想流派:您可以将此Game
对象传递给所有人,您可以拥有Game
单身,或者您可以使用通知。这些方法中的每一种都有优势,你选择的任何一种方法对于一个简单的程序来说都可能是好的(就个人而言,对于一个非常简单的程序,我会使用单例)。
在第一个方案中,在程序的某个时刻,您创建了一个Game
对象,该对象具有一些addToScore:
方法。您将此对象指定为需要更新分数的每个其他对象的属性。每次调用[self.game addToScore:value]
。这种方法使单元测试更简单,但实现起来可能有点乏味。
在第二个方案中,您有一些shared singleton +[Game sharedGame]
。如果要更新分数,请致电[[Game sharedGame] addToScore:value]
。这通常很容易实现。
在第三种方案中,您有一些使用Game
来观察某些通知的对象(NSNotificationCenter
)。如果要更新分数,只需在其用户词典中发布包含要添加的金额的通知即可。这对于保持极度分离非常有用,但在更常见的情况下再次变得有点乏味。
但正如@Chuck指出的那样,你可能过度思考了这一点,你可能想回过头来学习一些教程,以便更好地了解这些东西通常是如何工作的。你所描述的那种情况并不复杂。
答案 1 :(得分:0)
听起来你想要一个包含整数值的类。然后你想给该类一个函数addToTotal(somenum)。
可以想象你可以在程序上完成所有这些,但是如果你想重新使用这个Total,我建议把它填入课堂。