从视图控制器访问模型?

我正在创build一个iPhone应用程序,一个游戏,我正试图理解和拥抱MVC体系结构。 我打算创build一个模型,在这个例子中叫做HighScoresModel ,它负责保存我游戏中所有关于高分的信息。

  1. 应该在哪里创build这个模型? 在AppDelegate? 在第一个视图控制器?
  2. 其他视图控制器应该如何访问模型,以传递像addScore:withDifficulty:这样的addScore:withDifficulty:

我认为在HighScoresModel上有一个类方法的最佳select,它将从任何需要它的对象访问模型的单个共享实例。

这是优于其他选项,因为没有控制器负责实例化模型,并且控制器也不必要地耦合到应用程序委托。

举个例子:

 @interface HighScoresModel : NSObject + (HighScoresModel *)sharedHighScoresModel; ... @end @implementation HighScoresModel static HighScoresModel *SharedHighScoresModel; + (HighScoresModel *)sharedHighScoresModel { if (!SharedHighScoresModel) { SharedHighScoresModel = [[HighScoresModel alloc] init]; } return SharedHighScoresModel; } ... @end 

希望这可以帮助!

创build一个单例,并在那里创buildHighScoresModel。 单身人士将可以从所有的ViewController访问。

至于其他视图控制器传递消息,你将能够在控制器的任何地方做类似的事情。

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

请参阅以下链接以获取更多有关单身人士的参考http://www.johnwordsworth.com/2010/04/iphone-code-snippet-the-singleton-pattern/