我正在创建一个iPhone应用程序,一个游戏,我正在努力理解并拥抱MVC架构。我打算创建一个名为HighScoresModel
的模型,负责保存游戏中有关高分的所有信息。
addScore:withDifficulty:
?答案 0 :(得分:1)
我认为在HighScoresModel
上使用类方法的最佳选择是从任何需要它的对象访问模型的单个共享实例。
这优于其他选项,因为没有控制器负责实例化模型,控制器也不会不必要地耦合到应用程序委托。
举个例子:
@interface HighScoresModel : NSObject
+ (HighScoresModel *)sharedHighScoresModel;
...
@end
@implementation HighScoresModel
static HighScoresModel *SharedHighScoresModel;
+ (HighScoresModel *)sharedHighScoresModel
{
if (!SharedHighScoresModel)
{
SharedHighScoresModel = [[HighScoresModel alloc] init];
}
return SharedHighScoresModel;
}
...
@end
希望这有帮助!
答案 1 :(得分:0)
创建一个Singleton并在那里创建HighScoresModel。可以从所有ViewController访问单例。
就其他视图控制器传递消息而言,您将能够在控制器内的任何位置执行类似的操作。
[MySingleTon myHighScoresModel] addScore:myScore withDifficulty:myDifficulty];
有关单身http://www.johnwordsworth.com/2010/04/iphone-code-snippet-the-singleton-pattern/
的更多参考,请参阅以下链接