我过去曾使用委托在不同的类之间共享有关对象(及其相关属性)的信息,但我正在计划一个新的应用程序并考虑使用单例类来执行此操作。
使用委托在类之间共享信息是强制性协议,还是我可以简单地使用单例类?
期待关于这个话题的一些观点或好的建议。
你可能错过了模型-视图-控制器的基本点,这是 Cocoa 应用程序的主要模式。在 MVC 下,没有理由“在……Tableview 控制器之间共享信息”。有一个模型层。模型层保存所有数据。视图层(包括表格视图)读取模型层并显示它。视图对象不需要相互交流。他们主要更新模型,然后从模型中读取。
您可以将模型实现为单例,或者作为初始化时传递给视图控制器的对象。两种方法都有优点。但是在任何情况下,您的视图控制器都不需要相互交谈。
有很多方法可以在控制器之间共享信息。这完全取决于您的设计,您选择什么。通常单例用于全局存储信息,以供整个应用程序在任何地方使用。例如,存储游戏的分数和其他东西。委托用于在有限数量的控制器之间进行通信。顺便说一句,您可以通过Notifications将您的数据广播到所有“监听”控制器。所以再次,它真的取决于你的设计,你应该选择什么。
你确实有几个选择。核心数据、单例、某种共享内存(可能您的指针位于导航控制器中,因此您可以与多个屏幕共享它——或者可能在您的 AppDelegate 中)、委托等。