0

私はiPhoneアプリケーション、ゲームを作成しており、MVCアーキテクチャを理解して採用しようとしています。私はモデルを作成することを計画しています。この場合、HighScoresModelそれは私のゲームのハイスコアに関するすべての情報を保持する責任があります。

  1. このモデルはどこで作成する必要がありますか?AppDelegateでは?最初のビューコントローラでは?
  2. 次のようなメッセージを渡すために、他のViewControllerはどのようにモデルにアクセスする必要がありますaddScore:withDifficulty:か?
4

2 に答える 2

1

クラスメソッドを設定するのが最善のオプションだと思いますHighScoresModel。これは、モデルの単一の共有インスタンスに、それを必要とする任意のオブジェクトからアクセスします。

これは、モデルのインスタンス化を担当するコントローラーがなく、コントローラーがアプリデリゲートに不必要に結合されていないため、他のオプションよりも優れています。

例として:

@interface HighScoresModel : NSObject

+ (HighScoresModel *)sharedHighScoresModel;
...

@end

@implementation HighScoresModel

static HighScoresModel *SharedHighScoresModel;

+ (HighScoresModel *)sharedHighScoresModel
{
    if (!SharedHighScoresModel)
    {
        SharedHighScoresModel = [[HighScoresModel alloc] init];
    }

    return SharedHighScoresModel;
}

...

@end

お役に立てれば!

于 2012-08-28T21:54:24.957 に答える
0

シングルトンを作成し、そこにHighScoresModelを作成します。シングルトンは、すべてのViewControllerからアクセスできます。

他のViewControllerがメッセージを渡す限り、コントローラー内のどこからでも同様のことができます。

[MySingleTon myHighScoresModel] addScore:myScore withDifficulty:myDifficulty];

シングルトンの詳細については、次のリンクを参照してくださいhttp://www.johnwordsworth.com/2010/04/iphone-code-snippet-the-singleton-pattern/

于 2012-08-28T21:56:49.340 に答える