Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios “如何申请”;大脑大师;?_Ios_Design Patterns - Fatal编程技术网

Ios “如何申请”;大脑大师;?

Ios “如何申请”;大脑大师;?,ios,design-patterns,Ios,Design Patterns,在我的应用程序中,我希望有一个“大脑”来跟踪正在发生的事情。也就是说,多个视图控制器需要能够在大脑中设置值并获取数据 我将如何着手实施这一点?据我所知,使我的大脑成为单例类是一个选项,否则我必须在每个视图控制器中将大脑声明为委托,并在每次创建时将大脑分配给它,这看起来相当混乱。单例模式是一个选项。另一个选项是NSUserDefault。正如您所说,您的答案在您的问题中。如果要从多个对象访问一个对象,并且不需要多个副本,请使用单例模式 请记住,如果代码中有两个或两个以上的对象试图同时操纵“大脑”,

在我的应用程序中,我希望有一个“大脑”来跟踪正在发生的事情。也就是说,多个视图控制器需要能够在大脑中设置值并获取数据


我将如何着手实施这一点?据我所知,使我的大脑成为单例类是一个选项,否则我必须在每个视图控制器中将大脑声明为委托,并在每次创建时将大脑分配给它,这看起来相当混乱。

单例模式是一个选项。另一个选项是NSUserDefault。

正如您所说,您的答案在您的问题中。如果要从多个对象访问一个对象,并且不需要多个副本,请使用单例模式


请记住,如果代码中有两个或两个以上的对象试图同时操纵“大脑”,则必须确保数据线程的安全。

是的,您是对的,单例是一个不错的选择。
因为我认为您处理的数据量很低,所以singleton很好而且很容易,否则可以将数据保存到数据库或NSuserDefaults中。

至于singleton模式,您可能希望阅读以下内容

确保你用这种模式设计你的应用程序,你应该做得很好。“大脑”就是模型


“模型”的行为取决于应用程序

有趣的阅读!但是,如果我不使用单例,我是否必须在一个
视图控制器中创建我的大脑,然后将其传递给可能需要使用它的任何其他视图?这取决于您是否希望这样做。大脑不是一个很好的类比是因为大脑可以思考(逻辑)和记忆(记忆),这是两个不同的东西。如果你的大脑正在执行逻辑任务,你甚至不需要一个实例,如果它记住了,你可能需要一些其他的模型(CoreData、NSUserDefaults、iCloud、文件、Web服务器等)。取决于你想做什么。嗯,也许我处理问题的方法不对。我的“大脑”基本上需要在一场比赛中为每一队保留一个分数,同时还要跟踪球员在比赛中的位置(即轮到谁了)。有什么建议吗?提前感谢。首先一定要尝试了解MVC模式,并更多地利用面向对象编程,比如:游戏、团队、记分牌、球员,对我来说都是非常面向对象的。也可能会考虑游戏玩家。