使用Singleton类

时间:2013-10-07 06:04:40

标签: iphone ios

我过去曾使用过一个代表来分享不同类中的Object(带有相关属性)的信息,但我正在计划一个新的App,并考虑使用Singleton类来实现这一点。

使用委托在类之间共享信息是否是强制性协议,还是我可以简单地使用Singleton类?

期待就该主题提出一些意见或建议。

3 个答案:

答案 0 :(得分:5)

您可能缺少模型 - 视图 - 控制器的基本点,这是Cocoa应用程序的主要模式。在MVC下,没有理由“在... Tableview控制器之间共享信息”。有一个模型层。模型层包含所有数据。视图层(包括tableviews)读取模型图层并显示它。视图对象不需要彼此交谈。他们主要更新模型,然后从模型中读取。

您可以将模型实现为单例,也可以将其作为初始化时传递给视图控制器的对象。两种方法都有优势。但是在任何情况下都不需要视图控制器相互通信。

答案 1 :(得分:4)

有许多方法可以在控制器之间共享信息。它完全取决于您的设计选择的内容。通常单身用于存储全局信息,供整个应用在任何地方使用。例如,存储游戏的分数和其他东西。 委托用于在有限数量的控制器之间进行通信。顺便说一句,您可以通过通知向所有“监听”控制器广播您的数据。所以你的设计真的取决于你应该选择什么。

答案 2 :(得分:0)

你有几种选择。核心数据,单例,某种共享内存(可能你的指针位于导航控制器中,因此你可以与多个屏幕共享 - 或者可能在你的AppDelegate中),代表等。