質問

私はObjective-Cに非常に慣れていません。私が学んでいるとき、私は自分のプログラムを作ろうとしています。アイデアは変数(またはオブジェクト?)という名前があります totalSave, 、 方法 addToTotalSaved パラメーター付き saveAmount, 、および複数のオブジェクト(各オブジェクトはパラメーターを指定します saveAmount 別の価値)が行動したときに引き起こす addToTotalSaved 「送信」、または用語が何であれ、 totalSave となることによって totalSave 正しい量だけ増加します。

まず第一に、コードがどのように機能するかについての私のアイデアが完全に間違っている場合、より良い方法を提供できますか? ...私はこれが複雑であるべきではないと感じています - しかし、そうでなければ私の質問は何がすべきかです totalSave なれ? int? nsinteger?オブジェクト?

役に立ちましたか?

解決

過度に複雑にしたように聞こえます。明らかに、アイデアは実際には「名前が付けられています」という名前はありません totalSave「ユーザーはそれを保存する場所をあまり気にしないので、投稿の残りの部分からは、実際にどのように保存するかは気にしません。

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

だから、3つの大きな考え方があります:あなたはこれを渡すことができます Game すべての人に目を向けると、あなたはaを持つことができます Game Singleton、または通知を使用できます。これらのアプローチにはそれぞれ利点があり、あなたが選ぶ人なら誰でも簡単なプログラムでは問題ありません(個人的には、非常に単純なプログラムでは、シングルトンを使用します)。

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

2番目のスキームには、いくつかあります 共有シングルトン +[Game sharedGame]. 。スコアを更新するときは、電話してください [[Game sharedGame] addToScore:value]. 。これは一般的に実装するためのEASIETです。

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

しかし、@Chuckが指摘しているように、あなたはおそらくこれを考えすぎているので、これらのことが通常どのように機能するかについてより良い感覚を得るために、いくつかのチュートリアルに戻って作業したいと思うかもしれません。あなたが説明している状況の種類はそれほど複雑ではありません。

他のヒント

合計で整数値を含むクラスが必要なようです。次に、そのクラスA機能addtotal(somenum)を提供します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top