从视图控制器访问模型?
我正在创build一个iPhone应用程序,一个游戏,我正试图理解和拥抱MVC体系结构。 我打算创build一个模型,在这个例子中叫做HighScoresModel
,它负责保存我游戏中所有关于高分的信息。
- 应该在哪里创build这个模型? 在AppDelegate? 在第一个视图控制器?
- 其他视图控制器应该如何访问模型,以传递像
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/