0

私は Objective-C にまったく慣れていないので、学んでいるうちに自分のプログラムを作ろうとしています。という名前の変数(またはオブジェクト?)、パラメーターを持つtotalSaveメソッド、および複数のオブジェクト(各オブジェクトはパラメーターに異なる値を与える)があり、それらが作用すると「送信」されるか、用語が何であれつまり、正しい量だけ増加します。addToTotalSavedsaveAmountsaveAmountaddToTotalSavedtotalSavetotalSave

まず第一に、コードがどのように機能するかについての私の考えが完全に間違っている場合、より良い方法を提供できますか? ...これは複雑であってはならないと思いますが、それ以外の場合、私の質問はどうあるべきtotalSaveですか? イント?NSInteger? オブジェクト?

4

2 に答える 2

1

あなたはそれを過度に複雑にしたように聞こえます。totalSave明らかに、ユーザーはそれをどこに保存するかをあまり気にしない可能性があり、投稿の残りの部分から、実際にどのように保存するかは気にしないため、実際には「」という名前の変数があるという考えではありません。

そうは言っても、これをもう少し具体的にするために、プログラムの多くの部分が追加される可能性のある「合計スコア」の状態について考えてみましょう。いくつかの方法があります。いずれにせよ、スコアを追跡しているオブジェクトがどこかにある可能性があります。Gameこれをオブジェクトと呼びますが、Levelか何かである可能性があります。

したがって、3 つの大きな考え方があります。このGameオブジェクトを全員に渡す、Gameシングルトンを使用する、または通知を使用することができます。これらのアプローチにはそれぞれ利点があり、どれを選択しても単純なプログラムにはおそらく問題ありません (個人的には、非常に単純なプログラムにはシングルトンを使用します)。

最初のスキームでは、プログラムのある時点で、何らかのメソッドGameを持つオブジェクトを作成します。addToScore:スコアを更新する必要がある他のすべてのオブジェクトに、このオブジェクトをプロパティとして割り当てます。それらの呼び出しのそれぞれ[self.game addToScore:value]。このアプローチにより、単体テストが少し簡単になりますが、実装が少し面倒になる可能性があります。

2 番目のスキームでは、いくつかの共有シングルトン +[Game sharedGame]があります。スコアを更新する場合は、 を呼び出します[[Game sharedGame] addToScore:value]。これは一般的に実装が簡単です。

3 番目のスキームには、何らかの通知を監視するためGameに使用するオブジェクト ( ) があります。NSNotificationCenterスコアを更新したい場合は、ユーザー辞書に追加する金額を含む通知を投稿するだけです。これは、物事を非常に分離した状態に保つのに最適ですが、より一般的なケースでは少し退屈になる可能性があります.

しかし、@Chuck が指摘しているように、あなたはおそらくこれを考えすぎているので、戻っていくつかのチュートリアルに取り組み、これらが通常どのように機能するかをよりよく理解することをお勧めします。あなたが説明している状況はそれほど複雑ではありません。

于 2013-11-07T18:34:00.867 に答える
0

整数値と合計を含むクラスが必要なようです。次に、そのクラスに関数 addToTotal(somenum) を指定します。

おそらく、これをすべて手続き的に行うこともできますが、この Total を再利用したい場合は、クラスに詰め込むことをお勧めします。

于 2013-11-07T18:02:03.243 に答える