我对 Objective-C 还很陌生,随着我的学习,我一直在尝试制作自己的程序。这个想法是有一个名为的变量(或对象?) totalSave, , 一个方法 addToTotalSaved 带参数 saveAmount, 和多个对象(每个对象都会给出参数 saveAmount 不同的值),当采取行动时会导致 addToTotalSaved 被“发送”,或者无论用什么术语, totalSave 以便 totalSave 增加正确的量。

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

有帮助吗?

解决方案

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

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

因此存在三大思想流派:你可以通过这个 Game 反对每个人,你可以有一个 Game 单例,或者您可以使用通知。这些方法中的每一种都有优点,并且您选择的任何一种都可能适合简单的程序(就我个人而言,对于非常简单的程序,我会使用单例)。

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

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

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

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

其他提示

听起来您想要一个类,其中包含一个带有总数的整数值。然后您想为该类提供一个函数 addToTotal(somenum)。

可以想象,您可以按程序完成这一切,但如果您想重新使用这个 Total,我建议将其填充到一个类中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top